【前端】Proxy对象在控制台中惰性求值_vue常见开发问题
- 问题描述
打印结果:Proxy {length: 0, 2025-07-01: ["123"], 2025-07-02: ["123"], 2025-07-07: ["123"], 2025-07-30: ["123"]}
实际点进去是空的 - 原因分析
因为 Proxy 对象在控制台中是“惰性求值”的(lazy evaluation)
- Proxy target 的数据被清空或变更
如果你打印了 Proxy,但在你点开看之前,底层的 target(原始对象)已经被清空或替换,你在控制台点开时获取的就是“最新数据”,这可能为空。
这在使用类似 Vue、Pinia、Proxy 的响应式数据时经常出现。 - 控制台延迟求值特性
Chrome DevTools 等调试工具在你 console.log(proxyObj) 时,不是立即复制对象值,而是创建了一个“引用”。当你点开查看属性时,它才真正读取这个对象的当前值,如果数据已经变了,你看到的内容就和最初打印不一致。
- 根源
这个时候就要检查相关代码,是不是类型弄错了,比如[] or {}