我在DOM prototype extension上读了一篇有趣的文章,显示了一些很好的理由不总是依赖于Element的原型 - 我不知道有哪些元素的子类,比如
HTMLParagraphElement.prototype< - HTMLElement.prototype< - Element.prototype< - Node.prototype< - Object.prototype中
一般来说,对象原型can be used for subclassing,但我常常看到_.extend用于创建mixins或基类,例如Backbone源代码中所见。
_.extend(Model.prototype, Events, {...stuff...}
为什么要使用它而不是像:
function innerModel() { ...stuff...}
innerModel.prototype = Events
Model.prototype = innerModel
在浏览器中缺少原型链可视化和调试的原因是_.extend经常用于子类而不是对象的原型吗?