面向 Web 开发人员的专业 JavaScript,第三版,Nicholas C. Zakas(Wrox,2012 年,第 210-215 页)使用以下函数描述了“寄生组合继承”:
function inheritPrototype(subType, superType) {
var prototype = object(superType.prototype);
prototype.constructor = subType;
subType.prototype = prototype;
}
我还没有弄清楚将 subType 分配给prototype.constructor 做什么或应该做什么。除非我遗漏了什么,否则我使用示例代码得到的输出是相同的:
在inheritPrototype中没有“增强对象”(prototype.constructor = subType;):http: //jsfiddle.net/Q22DN/
在inheritPrototype http://jsfiddle.net/eAYN8/中使用“增强对象”(prototype.constructor = subType;)
这真的是一行无目的的代码吗?谢谢你的解释!