介绍
在 ECMAScript 2020 (ES11) 中,新增了全局对象 globalThis,它提供了在任何 JavaScript 环境中都能访问全局属性和函数的方法。
在不同的 JavaScript 环境中,全局对象称谓可能不同。例如,在浏览器中,全局对象是 window,而在 Node.js 环境中,全局对象是 global。为了避免在不同环境中的代码兼容问题,ES11 引入了 globalThis,可以在任何环境中访问全局对象。
使用
全局对象 globalThis 在使用时和 window、global 一样。它提供了全局访问对象的能力,从而可以访问全局调用函数、属性等。
-- -------------------- ---- ------- -- ----- ------ -- ----- ------------ - -------------- -------------------- -- ----- ------ -- ----- ---- - ---------------- -------------------- -- ----- ---------- -- ------------------------
当在 Web Worker 或不同的 JS 环境中执行代码时,使用 globalThis 可以消除环境之间的潜在兼容性问题。
// 在所有 JavaScript 环境中都能访问全局的 console 对象 globalThis.console.log('Hello, World!');
意义
使用 globalThis 可以提高代码的简洁性和可移植性,同时避免了环境之间的兼容性问题。因此,在未来的开发中,我们可以优先考虑使用 globalThis 替代以前的 window,global 对象。
总结
全局对象 globalThis 提供了在所有 JavaScript 环境中都能访问全局属性和函数的方法。可以取代之前环境不同而出现的兼容性问题。因此,在以后的开发中,我们应该优先使用 globalThis。
在实际开发中,不论是使用 window、global、globalThis,为了代码可维护性,应尽可能减少全局变量的使用,避免出现命名冲突和不必要的污染。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64e55bccf6b2d6eab30c93e8