Dat*_*ata 6 javascript object google-chrome-devtools prototype-chain
当我创建一个空白对象时:
var o = {};
Run Code Online (Sandbox Code Playgroud)
为什么我在创建新对象时无法查看'__proto __'对象,但我可以在添加函数时使用它?

编辑:为了完整性,要创建一个真正空白的对象(没有原型链接),我们可以这样做:
var o = Object.create(null);
Run Code Online (Sandbox Code Playgroud)
但出于问题的目的,我将使用o = {}语法.
编辑2:这显示了对象创建时的原型链接,所以__proto的__在那里,但我无法在调试器中查看它们,除非我添加一个函数对象.

编辑3:它适用于Firefox:

谁知道?这似乎是 Chrome 调试器实现者的设计决定。除非这里有人了解他们的决策过程,否则我认为这个问题偏离了主题。
也许他们认为你不需要能够扩展对象,除非它们有方法。
IE 和 Firefox 都会__proto__在其控制台中显示该属性,即使在空对象上也是如此。如果您想出于学习目的观察对象原型,也许最好在其中一种浏览器中这样做。
| 归档时间: |
|
| 查看次数: |
191 次 |
| 最近记录: |