Web开发人员专业JavaScript中的“寄生组合继承”

Web开发人员专业JavaScript中的“寄生组合继承”,第1张

概述适用于Web开发人员的专业JavaScript,第三版作者:Nicholas C. Zakas(Wrox,2012,第210-215页)使用以下函数描述了“寄生组合继承”: function inheritPrototype(subType, superType) { var prototype = object(superType.prototype); prototype.c 适用于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/

这真的可以成为一系列无用的代码吗?谢谢你的解释!

解决方法 “构造函数”的赋值不是强制性的,因为“原型”的赋值是.这样做的原因是函数原型通常带有默认设置的“构造函数”属性.它可能对复制对象的库很有用,因为您可以从对象本身获取对该对象的构造函数的引用.
function Foo(){}obj = new Foo();console.log(obj.constructor); //function Foo
总结

以上是内存溢出为你收集整理的Web开发人员专业JavaScript中的“寄生组合继承”全部内容,希望文章能够帮你解决Web开发人员专业JavaScript中的“寄生组合继承”所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1104366.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存