在阅读骨干网的源代码时,我只是想知道一些面向对象。
http://backbonejs.org/docs/backbone.html(搜索“ this.parse(attributes);”)
Backbone.Model = function(attributes, options) {
var defaults;
attributes || (attributes = {});
console.log('attributes : ', attributes);
if (options && options.parse) {
//LOOK HERE
attributes = this.parse(attributes);
}
if (defaults = getValue(this, 'defaults')) {
attributes = _.extend({}, defaults, attributes);
}
if (options && options.collection) this.collection = options.collection;
this.attributes = {};
this._escapedAttributes = {};
this.cid = _.uniqueId('c');
if (!this.set(attributes, {silent: true})) {
throw new Error("Can't create an invalid model");
}
delete this._changed;
this._previousAttributes = _.clone(this.attributes);
this.initialize.apply(this, arguments);
};
如何在原型中使用解析?
该方法稍后在_.extend(Backbone.Model.prototype,Backbone.Events,{
最佳答案
您在函数中看到的代码将在某人正在执行时执行
new Backbone.Model
届时,还将定义
Backbone.Model.prototype
。因此,属性查找将在parse
上找到this.constructor.prototype
方法(其中this
指向刚创建的Backbone.Model
实例)。关于javascript - this.parse(attributes); Backbone 模型中的源代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13825405/