适用于Web开发人员的专业JavaScript,第三版作者:Nicholas C. Zakas(Wrox,2012,第210-215页)使用以下函数描述了“寄生组合继承”:
function inheritPrototype(subType,superType) { var prototype = object(superType.prototype); prototype.constructor = subType; subType.prototype = prototype; }
我还没有弄清楚prototype.constructor对subType的赋值是做什么的,或者应该做什么.除非我遗漏了某些内容,否则使用示例代码得到的输出是相同的:
在inheritPrototype中没有“augment object”(prototype.constructor = subType;):
http://jsfiddle.net/Q22DN/
在inheritPrototype中使用“augment object”(prototype.constructor = subType;)
http://jsfiddle.net/eAYN8/
这真的可以成为一系列无用的代码吗?谢谢你的解释!