使用下划线与主干扩展()[关闭]
Posted
技术标签:
【中文标题】使用下划线与主干扩展()[关闭]【英文标题】:extend() using underscore vs. backbone [closed] 【发布时间】:2012-10-17 19:40:35 【问题描述】:我知道主干在某种程度上取决于下划线和 jquery。下面两行有区别吗?
app.notifications = _.extend(, Backbone.Events);
与
app.notifications = Backbone.Events.extend();
如果它们不相同,有何不同?
【问题讨论】:
很确定 Backbone.Events.extend 不存在 0.9.9 现在允许您扩展事件backbonejs.org/?0-9-9#changelog 【参考方案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
【讨论】:
以上是关于使用下划线与主干扩展()[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
backbone.js - 模板不会在asp.net视图上呈现