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

如何在JavaScript中列出全局根对象?

问题原因与解决方案

为什么window相关方法找不到你的全局变量/类?

  • 用function example() {}这类方式声明的全局函数,会自动挂载为window对象的属性,所以能通过Object.getOwnPropertyNames(window)这类方法找到。
  • 但const、let声明的变量,以及class声明的类,在全局作用域下不会被添加到window对象中——它们属于ES6新增的全局环境绑定,和传统的全局属性是两个不同的体系。

怎么获取这些全局绑定?

  • 直接使用globalThis对象(它是ES2020引入的标准全局对象,浏览器环境下等价于window,但能覆盖所有全局绑定),用以下代码:
    Reflect.ownKeys(globalThis).join(' ')
    
    或者:
    Object.getOwnPropertyNames(globalThis).join(' ')
    
    这两个方法能返回所有全局环境中的绑定,包括你用const/let/class声明的内容。
  • 如果你需要筛选出自定义的全局项,可以在脚本执行前先保存一份globalThis的属性列表,执行后再对比,过滤掉环境自带的属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 11:35:54