为什么Object .__ proto __.__ proto__不为空?

jra*_*ali 7 javascript prototype

我的理解是它Object.__proto__是javascript中的"顶级"原型对象.我希望它__proto__是null,但在谷歌Chrome(没有尝试过其他浏览器),它不是.这是为什么?

编辑

我知道下面的图像可能是下面的图像的重新哈希,但我自己做了检查我的理解.它有什么问题吗? 在此输入图像描述

geo*_*org 6

Object是一个函数,它__proto__是一个空函数function() {}.根对象是一个空对象{},而不是Object.所以,当你有一个像{foo:1, bar:1}它的关系的对象看起来像这样:

在此输入图像描述


Sig*_*uza 5

我觉得你错Object.__proto__Object.prototype.

Object.prototype.__proto__确实是空的,因为Object没有扩展任何东西.

Object然而,它本身就是一个功能 - 又名.一个例子Function.
Function扩展以来Object,它的原型具有__proto__属性.
因此,你可以走了弯路了Object.__proto__.__proto__到达Object.prototype,事实上:

Object.prototype === Object.__proto__.__proto__ // should yield true
Run Code Online (Sandbox Code Playgroud)