Javascript 对象属性在声明之前登录 Google Chrome 控制台 [重复]

2023-11-22

我一直在使用以下方法测试一些 JavaScriptGoogle Chrome version 28.0.1500.95 m控制台并希望对其工作原理有更多了解:看看下面的代码:

var obj = {
    a: 99,
    f: function() { }
}

console.log(obj.a)
console.log(obj.z)    
console.log(obj)

o.z = 100;

Demo

这会输出以下结果:

99 
undefined 
Object {a: 99, f: function}
a: 99
f: function () { }
z: 100
__proto__: Object

我的问题是,为什么z当它直到日志之后才声明时,在结果中可见吗?

我假设这与控制台的工作方式有关,而不是 JavaScript 中一些我不知道的奇怪的范围规则?

谁能告诉我这里发生了什么事吗?


控制台中的对象最初显示为Object单击箭头时会展开。

展开对象时会出现一个 i 图标,将鼠标悬停在它上时您会看到答案:

下面的对象状态是在第一次扩展时捕获的

展开后看到的是对象展开时的状态,而不是调用时的状态log()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Javascript 对象属性在声明之前登录 Google Chrome 控制台 [重复] 的相关文章