在 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