要将函数添加到主干模型,我可以执行以下两种操作之一:
App.WidgetModel= Backbone.Model.extend({
sayHello: function(){
console.log('Hello, I'm a widget');
}
});
...或者...
App.WidgetModel = Backbone.Model.extend({});
App.WidgetModel.prototype.sayHello = function(){
console.log('Hello, I'm a widget');
};
如果我的应用程序中随时有数千个小部件,那么哪种“正确”方法是这样做的?
最佳答案
通常第一个比第二个更常见。
App.WidgetModel= Backbone.Model.extend({
sayHello: function(){
console.log('Hello, I\'m a widget');
}
});
App.SomeotherModel = App.Widget.extend({
sayHello: function () {
App.Widget.call(this);
console.log('Hello, I\'m a SomeotherModel');
};
});
即使您可能想用非 Backbone 的东西来扩展模型
var someObject = {/**/};
_.extend(someObject, App.SomeotherModel);
例如查看 http://backbonejs.org/#Events
如果我们查看源代码 .extend method执行一些其他操作,例如修复代理模型的原型(prototype)链,因此如果您要使用 Model2 = Model1.extend 等,最好使用扩展定义方法。
关于javascript - 向 Backbone 模型添加功能的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21932206/