要向Backbone Model添加一个函数,我可以做以下两件事之一:
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');
};
如果我的应用随时都有数千个小部件,那么“正确”的方法是什么?
答案 0 :(得分:2)
通常第一种比第二种更常见。
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');
};
});
即使您可能希望使用非骨干的东西扩展模型
var someObject = {/**/};
_.extend(someObject, App.SomeotherModel);
在http://backbonejs.org/#Events
查找实例如果我们查看源代码,.extend method会执行一些其他操作,例如修复代理模型的原型链,因此如果要使用Model2 = Model1.extend
等等,最好定义方法延伸。