ECMAScript 2020(ES11)中的新特性:globalThis 对象

在 ECMAScript 2020(ES11)中,一个新的全局对象 globalThis 被引入。这个全局对象可以在任何环境中被访问,包括浏览器、Node.js 和 Web Workers 等。

globalThis 对象的作用

在之前的版本中,我们需要使用 windowselfglobalthis 等不同的方式来访问全局对象,这样就会导致代码在不同的环境中表现不一致。而 globalThis 对象的引入,可以解决这个问题。

使用 globalThis 对象,我们可以在任何环境中都能够访问全局对象,而不用担心环境的差异。这样,我们可以更加方便地编写跨平台的代码,并且可以减少代码的维护成本。

globalThis 对象的使用

在使用 globalThis 对象时,我们可以将其当作一个普通的全局对象来使用。例如,我们可以使用 globalThis.setTimeout 来设置一个定时器:

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

另外,我们也可以使用 globalThis 来访问其他全局对象,例如 globalThis.consoleglobalThis.Math 等。

globalThis 对象的示例

下面是一个使用 globalThis 对象的示例,我们可以在浏览器和 Node.js 中都能够运行:

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

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

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

在这个示例中,我们定义了一个全局变量 myVar,然后在浏览器和 Node.js 中分别输出这个变量的值。由于 globalThis 对象的引入,我们可以在两个不同的环境中都能够访问这个全局变量,而不用担心环境的差异。

总结

globalThis 对象的引入,可以让我们更加方便地编写跨平台的代码,并且可以减少代码的维护成本。在使用 globalThis 对象时,我们可以将其当作一个普通的全局对象来使用,可以访问其他全局对象,例如 consoleMath 等。

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