9

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

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

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

o.z = 100;

演示

这将输出以下结果:

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

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

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

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

4

1 回答 1

11

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

展开对象时有一个 i 图标,当您将其悬停时,您会看到答案:

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

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

于 2013-08-07T08:42:01.957 回答