我的理解是,Object.__proto__是javascript中的“顶级”原型对象。我希望它的__proto__是空的,但是在Google (还没有尝试过其他浏览器)中,它不是。为什么呢?
编辑
我知道下面的图片可能是下面这张的重新散列,但我自己做的,是为了检查我的理解。有什么问题吗?

发布于 2015-07-29 17:05:28
Object是一个函数,__proto__是一个空函数function() {}。根对象是一个空对象{},而不是Object。因此,当您有一个像{foo:1, bar:1}这样的对象时,它的关系如下所示:

发布于 2015-07-29 17:04:40
我想你把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 truehttps://stackoverflow.com/questions/31706576
复制相似问题