我一直在阅读Mozilla JS指南中的以下文章。
在经典继承与Object.create 的示例中,我无法弄清楚为什么作者添加了以下行(第21行):
Rectangle.prototype.constructor = Rectangle;
经典继承是否需要?请证明你的答案。
答案 0 :(得分:3)
从ECMAScript-262 Edition 5.1开始,构造函数属性仅在函数对象上设置, 参见 13.2创建功能对象(步骤17)
语言本身永远无法读取或使用。
特别是
obj instanceof C
不使用构造函数属性,也不使用
C.prototype.isPrototypeOf(obj)
因此,如果您不使用它,并且不使用使用它的框架,则可以忽略构造函数属性。
如需进一步阅读,请参阅What’s up with the “constructor” property