引言
JavaScript 是一门非常灵活的编程语言,但就因为这种灵活性,它也存在一些不优美的编程模式。比如,在不同的环境中,访问全局对象 window
或 global
的行为是不一样的。而在 ES11 中,我们迎来了一个新的全局对象 globalThis
,它可以帮助我们在不同的宿主环境下,非常方便地访问全局变量。
globalThis 的介绍
globalThis
是一个在全局作用域下存在的变量,它代表了全局对象。如果在浏览器中使用,那么它就是 window
对象;如果在 Node.js 中使用,那么它就是 global
对象。
在 ES11 中,globalThis
成为了 ECMAScript 的内置特性。这意味着你无需加载任何模块,就可以在任何现代 ES11 版本的环境中使用它。
globalThis 的用法
代码示例:
-- ---------- ------------------- ------------------------ -- ------------------- --------- ------ -- ------- -------------- ------ -- ---------------------- --- -------- ------ -- - ------- --- -------------- ------ -- ---------------------- --- -------- ------
接下来,我们将分别介绍在浏览器和 Node.js 中,如何使用 globalThis
。
在浏览器中使用 globalThis
在浏览器中,我们可以通过 globalThis
来访问全局变量,而不需要使用 window
对象。由于 globalThis
在不同的环境中指向的对象是不一样的,所以我们可以使用 globalThis
来编写可移植的代码。
代码示例:
-- ----------- - ------------ - -- --------------- -- - -- -------------- -------- -- ---- -------------------------- ------------------------ ---------
在 Node.js 中使用 globalThis
在 Node.js 中,我们可以通过 globalThis
来访问全局变量,而不需要使用 global
对象。
代码示例:
-- ----------- - ------------ - -- --------------- -- - -- - ------- ---- ---------- ------ ------------------------ -- ------------------- --------- ------
总结
在 ES11 中,globalThis
成为了内置特性,它可以帮助我们在不同的宿主环境下访问全局变量,代码可移植性得到了很大的提高。在浏览器和 Node.js 中,我们都可以使用 globalThis
来访问全局变量。
因此,在编写 JavaScript 应用程序的时候,我们应该优先使用 globalThis
来代替 window
或 global
对象,以此提升代码的可移植性和通用性。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/653748397d4982a6ebfbf144