为什么不在这个例子中.__ proto__ = .prototype?

时间:2012-06-07 07:55:18

标签: javascript

我理解“ __proto__是对象的内部属性,指向其原型”因此,在以下示例中,我认为c2.prototype将等于{{ 1}}。为什么他们没有相同的价值?

c2.__proto__

3 个答案:

答案 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