ES11 中的新特性:全局对象 globalThis 的引入

阅读时长 3 分钟读完

在 ES11 中,引入了一个新的全局对象 globalThis,它可以在任何环境中访问全局作用域,包括浏览器、Node.js 等。

globalThis 的作用

在全局作用域中,可以使用 window、self、global、this 等对象访问全局作用域。然而,这些对象在不同的环境中可能不存在,导致代码不可移植性。而 globalThis 则是一个可移植的全局对象,可以在任何环境中使用。

例如,在浏览器中,可以使用以下方式访问全局作用域:

而在 Node.js 中,则需要使用以下方式:

使用 globalThis 则可以在任何环境中使用同样的方式访问全局作用域:

globalThis 的使用

globalThis 可以用于在不同的环境中编写可移植的代码。例如,如果需要在浏览器和 Node.js 中都使用 Promise,可以使用以下代码:

如果在浏览器环境中,globalThis.Promise 会指向 window.Promise;而在 Node.js 环境中,globalThis.Promise 不存在,需要使用 require 引入。

globalThis 的指导意义

globalThis 的引入,反映了 JavaScript 社区对于跨平台开发的关注。在多端开发、跨平台开发中,使用可移植的代码是非常重要的,可以提高代码的可复用性和可维护性。使用 globalThis,可以避免因为环境不同而导致的代码不可移植性问题。

示例代码

总结

全局对象 globalThis 的引入,提高了 JavaScript 代码的可移植性,可以在不同的环境中编写可移植的代码。在多端开发、跨平台开发中,使用可移植的代码是非常重要的,可以提高代码的可复用性和可维护性。

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

纠错
反馈