JavaScript 中的原型和 __proto__

Prototypes and __proto__ in JavaScript

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

但是 Object() 是什么?

有人可以解释为什么这个语句输出 true

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

But what is Object()?

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

can some explain why this statement outputs true

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

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

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

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

因为这两个指的是同一个东西,所以你上面的相等表达式也是正确的。 (顺便说一句 Object.prototype.__proto__null,所以它也等于任何其他 null 值)。

这是真的,因为他们两个 return null :)

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