ECMAScript 2021 中的 globalThis 对象使用指南及其与 window 的区别

阅读时长 3 分钟读完

介绍

在 ECMAScript 2020 之前,全局对象是由宿主(host)环境提供的,比如浏览器中的 window 对象,Node.js 中的 global 对象等。这使得在不同的运行环境中编写通用的代码变得困难。

ECMAScript 2020 引入了 globalThis 对象,它提供了一种跨平台的访问全局对象的方案。使用 globalThis,可以在不同的环境中编写跨平台的代码。

语法

globalThis 是全局对象的属性,可以直接访问。以下代码演示了如何使用 globalThis

区别

globalThiswindow 的最大区别是 globalThis 在不同的运行环境中都存在,而 window 只存在于浏览器环境中。

当在浏览器环境中使用时,globalThis 表示的就是 window。以下代码演示了 globalThiswindow 的等价性:

当在 Node.js 等非浏览器环境中使用时,globalThis 表示的就是全局对象。以下代码演示了在 Node.js 环境中使用 globalThis 访问全局对象:

示例

以下代码演示了如何在多个环境中使用 globalThis 实现跨平台:

-- -------------------- ---- -------
----- ------------ - ------ ---------- --- ----------- - ---------- - ------ ---- --- ----------- - ---- - ------ ------ --- ----------- - ------ - ---

-- -----
---------------------------------
-------------------------------

-- ------- --
------------------------------------------
----------------------------------------

结论

globalThis 对象提供了一种跨平台的访问全局对象的方案,可以使得在不同的环境中编写通用的代码变得更加容易。在浏览器环境中,globalThiswindow 是等价的。在 Node.js 等非浏览器环境中,globalThis 表示的是全局对象。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/672adc09ddd3a70eb6d0fda0

纠错
反馈