You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中console.log提前显示对象后续新增属性问题咨询

问题原因

这个现象是浏览器开发者工具console.log的惰性求值(延迟求值)特性导致的:

  • 当你调用console.log()输出引用类型(比如对象、数组)时,浏览器并不会立即将该对象当前的状态做快照存储,而是仅存储对象在内存中的引用地址。
  • 你在控制台点击展开该对象的预览时,开发者工具才会真正去读取该引用指向的内存中最新的对象状态,这时候代码中后续给对象追加extra属性的逻辑已经执行完毕,所以展开后会看到包含后续添加的属性。
验证方案

你可以通过以下两种方式打印对象的即时快照,避免这个问题:

  1. 序列化后打印,直接输出执行打印时的对象状态字符串:
console.log(JSON.stringify(testarray))
  1. 打印浅拷贝后的新对象,切断和原对象的引用关联:
console.log({...testarray})

内容的提问来源于stack exchange,提问作者nhatimme

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 15:09:03