JavaScript 全局 this

摘要:在本教程中,您将学习有关 JavaScript globalThis 对象的知识。

JavaScript 全局 this 对象简介

ES2020 引入了 globalThis 对象,该对象提供了一种跨环境访问全局对象的标准方式。

历史上,JavaScript 在不同的环境中具有不同名称的全局对象。

在 Web 浏览器中,全局对象是 windowframes

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

另一方面,Node.js 使用 global 关键字来引用全局对象。

环境全局
Web 浏览器this
Web Workersself
Node.jsglobal

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

为了标准化这一点,ES2020 引入了 globalThis,它在所有环境中都可用。

例如,以下代码检查当前环境是否支持 Fetch API

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

console.log(canFetch);Code language: JavaScript (javascript)

该代码检查 fetch() 函数是否为全局对象的属性。在 Web 浏览器中,globalThiswindow 对象。因此,如果您在现代 Web 浏览器上运行此代码,canFetch 将为 true

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

globalThis === windowCode language: JavaScript (javascript)

输出

trueCode language: JavaScript (javascript)

总结

  • 使用 globalThis 对象来引用全局对象,以使代码跨环境工作。
本教程对您有帮助吗?