我一直在阅读 Mozilla JS Guide 中的以下文章。
在使用 Object.create 为经典继承给出的示例中,我无法弄清楚为什么作者添加了以下行(第 21 行):
Rectangle.prototype.constructor = Rectangle;
经典继承是否需要它?请证明你的回答。
我一直在阅读 Mozilla JS Guide 中的以下文章。
在使用 Object.create 为经典继承给出的示例中,我无法弄清楚为什么作者添加了以下行(第 21 行):
Rectangle.prototype.constructor = Rectangle;
经典继承是否需要它?请证明你的回答。
从 ECMAScript-262 版本 5.1 开始,constructor 属性仅设置在函数对象上,请参见13.2 创建函数对象(步骤 17)
语言本身从不阅读或使用它。
尤其是,
obj instanceof C
不使用构造函数属性,也不使用
C.prototype.isPrototypeOf(obj)
因此,如果您不设计它,并且不使用使用它的框架,您可能会忽略构造函数属性。
如需进一步阅读,请参阅“构造函数”属性是什么