ECMAScript 2021(ES12)中的 globalThis

在 ECMAScript 2021(ES12)中,新增了一个全局对象 globalThis,这个对象提供了一种跨平台、跨环境、跨语言的全局访问方式。在以前,我们可能需要使用不同的方法来访问不同的全局对象,比如在浏览器中使用 window,在 Node.js 中使用 global,在 Web Worker 中使用 self 等等。但是现在,我们可以直接使用 globalThis 来访问全局对象,而不用关心当前环境是什么。

globalThis 的用途

使用 globalThis 可以让我们编写更加通用的代码,因为我们不需要考虑代码运行的环境。比如,我们可以编写一个库,这个库需要在浏览器和 Node.js 中都能使用。在以前,我们需要编写不同的代码来适配不同的环境。但是现在,我们可以使用 globalThis 来访问全局对象,从而编写更加通用的代码。

另外,globalThis 还可以用来实现跨语言的通信。比如,我们可以在 JavaScript 中调用 WebAssembly,而 WebAssembly 可以使用 globalThis 来访问 JavaScript 中的全局对象。

globalThis 的示例

下面是一个使用 globalThis 的示例代码:

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

在这个示例代码中,我们首先判断 globalThis 是否存在,如果存在,则使用 globalThis.console.log 来输出一条信息。在浏览器中,globalThis 等价于 window,在 Node.js 中,globalThis 等价于 global,因此可以跨平台使用。

总结

globalThis 是 ECMAScript 2021(ES12)中的一个新增特性,它提供了一种跨平台、跨环境、跨语言的全局访问方式。使用 globalThis 可以让我们编写更加通用的代码,从而减少代码的重复。同时,globalThis 也为跨语言的通信提供了一种方便的方式。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65f4c1a52b3ccec22fd0b97d