myfreax

JavaScript globalThis 对象

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

JavaScript globalThis 对象
JavaScript globalThis 对象

在本教程中,您将学习如何使用 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 对象引用全局对象,使代码跨环境工作。

内容导航