【发布时间】:2018-11-01 18:09:32
【问题描述】:
function A(){}
function B(){}
function C(){}
B.prototype = new A();
console.log(B.prototype.constructor);
C.prototype = new B();
console.log(C.prototype.constructor);
打印:
[功能:A]
[功能:A]
到目前为止,我的理解是,通常在 JavaScript 中,对象的构造函数属性是指创建它的构造函数。如果对象是由文字创建的,则构造函数属性引用该文字的基础类型。
鉴于上面 constructor 属性的“定义”,我不明白为什么它打印
[Function: A] 两次,而不是:
[功能:A]
[功能:B]
【问题讨论】:
-
必须显式设置构造函数。
B.prototype = Object.create(A.prototype); B.prototype.constructor = B
标签: javascript constructor prototype