向Backbone Model添加函数的最有效方法

时间:2014-02-21 10:45:28

标签: javascript backbone.js

要向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');
};

如果我的应用随时都有数千个小部件,那么“正确”的方法是什么?

1 个答案:

答案 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等等,最好定义方法延伸。