通过docs阅读,我发现你可以在模型类上替换Backbone扩展的构造函数。但是这样做与初始化方法之间的区别是什么?使用new
时不会同时调用吗?
var Library = Backbone.Model.extend({
constructor: function() {
this.books = new Books();
Backbone.Model.apply(this, arguments);
},
parse: function(data, options) {
this.books.reset(data.books);
return data.library;
}
});
VS
var Library = Backbone.Model.extend({
initialize: function() {
this.books = new Books();
Backbone.Model.apply(this, arguments);
},
parse: function(data, options) {
this.books.reset(data.books);
return data.library;
}
});
答案 0 :(得分:2)
“构造函数”在Backbone设置结构之前运行 在结构的构造函数中调用“ initialize ”。
换句话说,如果您需要在Backbone设置结构之前向对象添加任何内容,您可能需要使用“构造函数”。如果您需要在Backbone设置结构之后向对象添加内容,则可以使用“初始化”。