为什么我不能在创建对象时查看 __proto__?

Why can't I view __proto__ upon object creation?

当我创建一个空白对象时:

var o = {};

为什么我创建新对象时看不到'__proto__'对象,但添加函数时可以?


编辑:为了完整起见,要创建一个真正的空白对象(无原型链接),我们可以这样做:

var o = Object.create(null);

但出于问题的目的,我将使用 o = {} 语法。


编辑 2:This shows the prototype linkage 在对象创建时,所以 __proto 的 __ 在那里,但我无法在调试器中查看它们,除非我添加一个函数对象。


编辑 3:在 Firefox 中有效:

谁知道呢?这似乎是 Chrome 调试器实现者的设计决定。除非这里有人知道他们的决策过程,否则我认为这个问题是题外话。

也许他们认为您不需要能够扩展对象,除非它们有方法。

IE 和 Firefox 都在其控制台中显示 __proto__ 属性,即使是在空对象上也是如此。如果您想出于学习目的观察对象原型,也许最好在其中一种浏览器中这样做。