摘要:在本教程中,您将学习有关 JavaScript globalThis
对象的知识。
JavaScript 全局 this 对象简介
ES2020 引入了 globalThis
对象,该对象提供了一种跨环境访问全局对象的标准方式。
历史上,JavaScript 在不同的环境中具有不同名称的全局对象。
在 Web 浏览器中,全局对象是 window
或 frames
。
但是,Web Workers API 没有 window
对象,因为它没有浏览上下文。因此,Web Workers API 使用 self
作为全局对象。
另一方面,Node.js 使用 global
关键字来引用全局对象。
环境 | 全局 |
---|---|
Web 浏览器 | this |
Web Workers | self |
Node.js | global |
如果您编写跨环境运行的 JavaScript 代码,并且需要访问全局对象,则必须使用不同的语法,例如 window
、frames
、self
或 global
。
为了标准化这一点,ES2020 引入了 globalThis
,它在所有环境中都可用。
例如,以下代码检查当前环境是否支持 Fetch API
const canFetch = typeof globalThis.fetch === 'function';
console.log(canFetch);
Code language: JavaScript (javascript)
该代码检查 fetch()
函数是否为全局对象的属性。在 Web 浏览器中,globalThis
是 window
对象。因此,如果您在现代 Web 浏览器上运行此代码,canFetch
将为 true
。
以下代码在 Web 浏览器中返回 true
globalThis === window
Code language: JavaScript (javascript)
输出
true
Code language: JavaScript (javascript)
总结
- 使用
globalThis
对象来引用全局对象,以使代码跨环境工作。
本教程对您有帮助吗?