随着前端开发的不断发展,JavaScript 也在不断的更新迭代。ES2021(即 ES12)是 JavaScript 的最新版本,其中新增了许多新特性,其中一个比较有趣和实用的特性就是 globalThis 对象。
什么是 globalThis?
在 JavaScript 中,全局作用域下的对象在浏览器环境和 Node.js 环境中是不同的。在浏览器中,全局对象是 window
,而在 Node.js 中,全局对象是 global
。这导致在开发中我们需要写两套代码来兼容这两个环境。
在 ES12 中,使用 globalThis
可以在任何环境中获取全局对象,进而实现跨平台开发的兼容性。
globalThis 的用法
在浏览器中,我们可以使用 window.globalThis
或者 self
来获取全局对象;在 Node.js 中,我们可以使用 global.globalThis
或者 global
来获取。
不过,使用 globalThis
更加简洁方便,如下代码所示:
// 获取全局对象 const globalObj = globalThis; // 在浏览器环境中输出 `window` console.log(globalThis); // 在 Node.js 环境中输出 `global` console.log(globalThis);
如上代码所示,通过使用 globalThis
,我们可以在不同的平台上获取全局对象,从而整合我们的代码,达到更好的兼容性。
globalThis 的作用
除了兼容性问题,global
对象在 JavaScript 开发中还有其他重要的用途。
在浏览器中,globalThis
对象可以用于跨框架通信。如果你的代码需要与另外一个框架进行通信,那么通过 globalThis
,就可以轻松地在两个框架之间传递信息。
另外,globalThis
也可以用于虚拟化平台中。比如,你的代码需要在 Node.js 和浏览器中进行测试,可以使用 globalThis
来在两个平台间进行数据和状态的共享。
总结
在 ES12 中新增的 globalThis
对象,能够方便开发者在不同的平台中获取全局对象,提高了代码的兼容性,并能够用于跨平台通信和状态共享。学习和掌握 globalThis
对于跨平台开发的工程师来说非常有价值。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/648adddf48841e989492314f