我理解“ __proto__
是对象的内部属性,指向其原型”因此,在以下示例中,我认为c2.prototype
将等于{{ 1}}。为什么他们没有相同的价值?
c2.__proto__
答案 0 :(得分:3)
简单的答案是c2.constructor.prototype == c2.__proto__
构造函数具有.prototype
属性。实例没有,但它们确实有.__proto__
和.constructor
属性
答案 1 :(得分:2)
obj.__proto__
是obj.constructor.prototype
的缩写版,不是obj.prototype
的简称:
console.log(c2.constructor.prototype === c2.__proto__); //true
console.log(c2.prototype === c2.__proto__); //false
答案 2 :(得分:1)
尝试以下内容。
console.log(c2.constructor.prototype);
console.log(c2.__proto__);
当c2是一个对象时,.__proto__
== .constructor.prototype
。