javascript - JavaScript 中的原型(prototype)和 __proto__

标签 javascript object prototype ecmascript-5

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

但是Object()是什么?

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

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

最佳答案

But what is Object()?

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

can some explain why this statement outputs true

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

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

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

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

由于它们都指的是同一事物,因此上面的等式表达式也是正确的。 (顺便说一句,Object.prototype.__proto__null,因此它也等于任何其他 null 值)。

关于javascript - JavaScript 中的原型(prototype)和 __proto__,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48359101/

相关文章:

javascript - 如何将 CSS 应用于输入标签值

javascript - 按钮点击调用PHP函数

php - 如何让PHP安全地设置evercookie

javascript - 如何将 jQuery/Javascript 函数转换为方法

c# - 使用 asp.net 将对象传递到不同的页面

javascript - 为什么点击时定义的函数会在页面加载时运行?

c++ - 通过对象指针调用对象函数

javascript - 我如何处理 JS 中的原型(prototype)?

JavaScript - 使用对象原型(prototype)来扩展方法的使用?

javascript - 定义原型(prototype)属性的正确方法