console.log() 显示同一对象属性的矛盾值

2024-05-17

我想我可能要疯了。

我使用 console.log() 来查看对象的状态,然后在下一行对同一对象的特定属性执行 console.log() 并为每个属性获取不同的值。

我正在使用的代码是:

console.log(this.pictures.Items[pic].val);

for(var i in this.pictures.Items[pic].val) {
    console.log("property: %s, value: %s", i, this.pictures.Items[pic].val[i] );
}

和萤火虫输出:

Picture { isLoaded=true, isSelected=false, img_src="imgs/image1.jpg", more...}

property: isLoaded, value: false
...more properties

如您所见,“isLoaded”在记录对象本身时为 true,但在记录属性时为 false。

为了以防万一,我尝试再次记录该对象,结果又是这样。

有谁知道这里发生了什么?

Thanks

Rich


我不完全确定这是否发生在你身上,但是console.log()在某些浏览器中似乎存在一些问题console.log()在数组中更改或迭代的值或使用索引变量并不总是能正常工作。

我的猜测是,这与进程边界之间的整理有关,并且可能与日志表达式的实际评估延迟有关,直到使用或引用的实际对象或索引发生变化为止。我确实在 Chrome 中看到过这个问题 - 不知道 Firefox 是否如此。

您应该能够通过使用字符串数学来构建最终字符串来解决这个特定问题。如果仅将最终字符串传递给console.log()如果一切都得到充分评估,那么这个问题不会影响输出。

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

console.log() 显示同一对象属性的矛盾值 的相关文章

随机推荐