javascript - 对于Backbone.js,如何显示Backbone.Model继承自Backbone.Events?

标签 javascript backbone.js

http://addyosmani.github.com/backbone-fundamentals/ ,据说

every single one of the following objects inherits from Backbone.Events:

Backbone.Model
Backbone.Collection
Backbone.Router
Backbone.History
Backbone.View

我还可以在 backbone.js 中找到以下内容:

// Attach all inheritable methods to the Model prototype.
_.extend(Model.prototype, Events, {  ....

但是,我尝试检查继承,通过

Backbone.Model.prototype.__proto__ === Backbone.Events

在Firebug中,它显示false,并且

Backbone.Model.prototype.__proto__.__proto__

已经是null,表示原型(prototype)链结束。那么如何体现传承呢?

最佳答案

您引用的页面不正确,Backbone 中没有任何内容继承自 Backbone.Events。然而,Backbone.Events 被混合到其他 Backbone“类”中。您提到的代码:

_.extend(Model.prototype, Events, { ...

并不是设置继承,只是将Events混合到Model的原型(prototype)中,效果类似这样:

for k in Events
    Model.prototype[k] = Events[k]

所以只需将Events的方法添加到Model即可。 Backbone document只说了这样一句话:

Backbone.Events

Events is a module that can be mixed in to any object, giving the object the ability to bind and trigger custom named events.

请注意混合术语。

Backbone.Events 甚至不是一个构造函数(它只是一个对象),因此没有任何东西可以继承。

关于javascript - 对于Backbone.js,如何显示Backbone.Model继承自Backbone.Events?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13103684/

相关文章:

javascript - 使用 GPU 在 Canvas 上绘图时性能受到影响

javascript - Backbone 部分 View 未呈现最新模型

javascript - 同步 AJAX 调用绝对需要的文件的替代方案?

javascript - Backbone.js 框架中相同 'class' 的嵌套模型?

javascript - 如何测试 Tabris 中是否存在文件?

javascript错误: this.节点为空或不是对象

javascript - 我如何理解 Backbone 语法

javascript - backbone.js - 以 RESTful 方式处理模型关系

javascript - 计算 SVG 文本的垂直高度

javascript - Array.push() 使所有元素在推送对象时都相同