我知道骨干在某种程度上取决于下划线和 jquery。下面两行有区别吗?
app.notifications = _.extend({}, Backbone.Events);
和
app.notifications = Backbone.Events.extend({});
如果它们不一样,有什么不同?
我知道骨干在某种程度上取决于下划线和 jquery。下面两行有区别吗?
app.notifications = _.extend({}, Backbone.Events);
和
app.notifications = Backbone.Events.extend({});
如果它们不一样,有什么不同?
Backbone.Events.extend 不存在,所以我将参考 Backbone.Model。
_.extend(target, mixin1, mixin2)
将属性复制到目标对象中
Backbone.Model.extend 将要subclass
Backbone.Model 基本上创建一个构造函数(函数),其原型具有您提供的属性。这将允许您创建新类的实例
var Person = Backbone.Model.extend({name: 'yourName'});
var me = new Person();
alert(me.name);
虽然_.extend
会失败
var Person = _.extend({name: 'yourName'}, Backbone.Model);
var me = new Person(); //error b/c Person is a regular object
alert(me.name);
简而言之 Backbone.Model.extend 创建了一个新的构造函数(函数),而 _.extend 修改了一个现有的对象;
var modified = {};
alert(modified === _.extend(modified, Backbone.Model)); //true
alert(modified === Backbone.Model.extend(modified)); //false