在 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