摘要:在本教程中,您将学习有关 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 === windowCode language: JavaScript (javascript)输出
trueCode language: JavaScript (javascript)总结
- 使用
globalThis对象来引用全局对象,以使代码跨环境工作。
本教程对您有帮助吗?