JavaScript中的原型和__proto__

时间:2018-01-20 17:31:25

标签: javascript object prototype ecmascript-5

Object是一个功能 Object.prototype是一个对象,其构造函数本身为Object

但是Object()是什么?

有人可以解释为什么这句话会输出true

Object.prototype.__proto__ === Object().__proto__.__proto__

2 个答案:

答案 0 :(得分:2)

  

但是什么是Object()?

评估Object()会根据Object原型生成一个新的空对象。

  

可以解释为什么这句话输出真的

     

Object.prototype.__proto__ === Object().__proto__.__proto__

Object()生成一个基于Object原型的新对象。对于从特定原型创建的对象,__proto__是对该原型的引用。

因此,Object.prototypeObject().__proto__都引用相同的值:

console.log(Object.prototype === Object().__proto__)

由于这两者都引用相同的东西,因此上面的等式表达式为真。 (顺便提一句Object.prototype.__proto__null,因此它也等于任何其他null值。

答案 1 :(得分:0)

这是真的,因为它们都返回null:)

Object.prototype.__proto__ === Object().__proto__.__proto__