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

能否通过document、window或其他方式访问被遮蔽的全局变量?

如何访问被遮蔽的全局变量?

当然可以,不同环境下有对应的方法访问被遮蔽的全局变量:

  • 浏览器环境:通过window对象访问。用var声明的全局变量会自动挂载到window上,即便被函数参数或局部变量遮蔽,直接调用window.变量名就能拿到全局版本。
  • Node.js环境:可以通过global或者globalThis对象访问全局变量。

针对你给出的代码示例,修改后就能访问全局的x:

var x = 10; //全局声明的变量

(function abc(x){     //使用同名参数遮蔽x
   console.log(x);    // 打印11
   console.log(window.x); // 打印10,成功访问被遮蔽的全局变量x
})(11)

注意:如果是用let或const声明的全局变量,在浏览器中不会挂载到window对象上,此时可以用globalThis来统一访问全局对象(globalThis是ES2020引入的标准全局对象,兼容浏览器和Node.js环境)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 14:57:29