You need to enable JavaScript to run this app. console.log打印PdfViewerApplication对象与其eventBus字段值不一致问题
优惠活动
大模型
产品
解决方案
定价
更多

console.log打印PdfViewerApplication对象与其eventBus字段值不一致问题

问题成因

这是Chrome、Firefox等主流浏览器控制台console.log的懒求值特性导致的,属于正常的设计逻辑,不是代码bug:

  • 打印完整引用类型(对象、数组等)时,控制台不会立即存储该对象所有属性的当前值,只会保存指向内存中该对象的引用。折叠状态下展示的是打印瞬间的属性快照,但你手动点击展开对象时,控制台会重新从内存中读取该对象的最新属性值再渲染。
  • 打印基础类型值(包括null、undefined、字符串、数字等)时,控制台会直接存储打印瞬间的取值,后续不会更新。

对应场景的执行时序

  1. 执行console.log(PdfViewerApplication)时,eventBus字段确实为null,控制台记录对象引用,折叠预览也显示当时的快照
  2. 紧接着执行console.log(PdfViewerApplication.eventBus),直接输出当前值null
  3. 两次打印完成后,后续业务逻辑完成了eventBus的初始化赋值,还绑定了pagesloaded事件监听器
  4. 手动点开第一次打印的完整对象时,控制台读取当前最新的对象属性,就展示了已经赋值完成的eventBus内容,和之前的打印结果出现差异

验证方案

如果需要打印对象当前时刻的完整快照,避免懒求值干扰,可以使用以下方式:

  • 对于可序列化的属性,使用console.log(JSON.parse(JSON.stringify(PdfViewerApplication)))
  • 现代浏览器可直接使用结构化克隆方法:console.log(structuredClone(PdfViewerApplication))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 00:42:03