在 ECMAScript 2020(ES11)中,一个新的全局对象 globalThis
被引入。这个全局对象可以在任何环境中被访问,包括浏览器、Node.js 和 Web Workers 等。
globalThis 对象的作用
在之前的版本中,我们需要使用 window
、self
、global
或 this
等不同的方式来访问全局对象,这样就会导致代码在不同的环境中表现不一致。而 globalThis
对象的引入,可以解决这个问题。
使用 globalThis
对象,我们可以在任何环境中都能够访问全局对象,而不用担心环境的差异。这样,我们可以更加方便地编写跨平台的代码,并且可以减少代码的维护成本。
globalThis 对象的使用
在使用 globalThis
对象时,我们可以将其当作一个普通的全局对象来使用。例如,我们可以使用 globalThis.setTimeout
来设置一个定时器:
------------------------ -- - ------------------- -------------- -- ------
另外,我们也可以使用 globalThis
来访问其他全局对象,例如 globalThis.console
、globalThis.Math
等。
globalThis 对象的示例
下面是一个使用 globalThis
对象的示例,我们可以在浏览器和 Node.js 中都能够运行:
-- -------- ---------------- - ------- ------------- -- ------- -- ------- ------ --- ------------ - ------------------------------ -- --------- ----------- - -- - ------- --- -- ------- ------ --- ------------ - ------------------------------ -- --------- ----------- -
在这个示例中,我们定义了一个全局变量 myVar
,然后在浏览器和 Node.js 中分别输出这个变量的值。由于 globalThis
对象的引入,我们可以在两个不同的环境中都能够访问这个全局变量,而不用担心环境的差异。
总结
globalThis
对象的引入,可以让我们更加方便地编写跨平台的代码,并且可以减少代码的维护成本。在使用 globalThis
对象时,我们可以将其当作一个普通的全局对象来使用,可以访问其他全局对象,例如 console
、Math
等。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65f3b5c02b3ccec22fc26065