在本教程中,您将学习如何使用 JavaScript globalThis 对象。

JavaScript globalThis 对象简介

ES2020 引入 globalThis 对象,它提供了一种跨环境访问全局对象的标准方法。在之前,JavaScript 有一个在不同环境中具有不同名称的全局对象。

在Web 浏览器,全局对象是 windowframes。Node.JS 使用 global 关键词来引用全局对象。

但是,Web Workers API 没有 window 对象,因为它没有浏览上下文。因此,Web Workers API 将 self 用作全局对象。

环境 Global 对象
Web Browsers this
Web Workers self
Node.JS global

如果您编写跨环境工作的 JavaScript 代码并且需要访问全局对象,则必须使用不同的语法,例如 window, frames, selfglobal

为了对此进行标准化,ES2020 引入跨环境可用的 globalThis 。例如,以下代码检查当前环境是否支持 Fetch API:

const canFetch = typeof globalThis.fetch === 'function';

console.log(canFetch);

代码检查 fetch() 函数是否是全局对象的属性。在网络浏览器,globalThiswindow 对象。因此,如果您在现代 Web 浏览器运行此代码,则 canFetchtrue.

以下代码在 Web 浏览器返回 true:

globalThis === window

输出:

true

结论

使用 globalThis 对象引用全局对象,使代码跨环境工作。