在本教程中,您将学习如何使用 JavaScript globalThis
对象。
JavaScript globalThis 对象简介
ES2020 引入 globalThis
对象,它提供了一种跨环境访问全局对象的标准方法。在之前,JavaScript 有一个在不同环境中具有不同名称的全局对象。
在Web 浏览器,全局对象是 window
或 frames
。Node.JS 使用 global
关键词来引用全局对象。
但是,Web Workers API 没有 window
对象,因为它没有浏览上下文。因此,Web Workers API 将 self
用作全局对象。
环境 | Global 对象 |
---|---|
Web Browsers | 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);
代码检查 fetch()
函数是否是全局对象的属性。在网络浏览器,globalThis
是window
对象。因此,如果您在现代 Web 浏览器运行此代码,则 canFetch
是 true
.
以下代码在 Web 浏览器返回 true:
globalThis === window
输出:
true
结论
使用 globalThis
对象引用全局对象,使代码跨环境工作。