【问题标题】:extend() using underscore vs. backbone [closed]使用下划线与主干扩展()[关闭]
【发布时间】:2012-10-17 19:40:35
【问题描述】:

我知道主干在某种程度上取决于下划线和 jquery。下面两行有区别吗?

app.notifications = _.extend({}, Backbone.Events);

app.notifications  = Backbone.Events.extend({});

如果它们相同,有何不同?

【问题讨论】:

标签: javascript jquery model-view-controller backbone.js underscore.js


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2014-06-13
    • 1970-01-01
    • 2012-10-16
    • 2012-10-21
    • 1970-01-01
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多