【发布时间】:2015-08-25 18:26:51
【问题描述】:
我正在阅读《JavaScript Ninja 的秘密》(http://jsninja.com/) 一书,我想知道为什么其中一个示例中的某个代码块是这样编码的。
示例 (http://jsfiddle.net/3s5bopqe/3/) 构建了一个自定义数组类型 (MyArray) 并重用了 Array.prototype 中的许多函数,而实际上并未从“Array”类型继承。
在书中的示例中,使用此代码在自定义类型的原型中重用了具有特定名称的函数
MyArray.prototype[ name ] = function() {
return Array.prototype[ name ].apply(this, arguments);
};
我相信我明白这里发生了什么。但对我来说,实际使用函数文字并显式“应用”来自 Array.prototype 的函数似乎没有必要。以下代码在测试设置中同样有效:
MyArray.prototype[ name ] = Array.prototype[ name ];
我的问题是使用书中的代码是否比上一个代码块有任何优势?
【问题讨论】:
-
偏好。许多 JS 代码,尤其是 JQuery 中的代码,都以书中列出的格式工作。一致性总是好的。
标签: javascript prototype-programming