在 ECMAScript 2020 中,新增了一个全局对象 globalThis,它可以让我们在任何环境中都能够很方便地获取到全局对象。在浏览器中,全局对象就是 window 对象;在 Node.js 中,全局对象是 global 对象。通过 globalThis,我们可以在不同的环境中编写通用的代码,而不需要担心全局对象的差异。
使用 globalThis 获取全局对象
在以往的 JavaScript 版本中,获取全局对象的方式可能有所不同。在浏览器中,我们可以使用 window 对象;在 Node.js 中,我们可以使用 global 对象。而在 ECMAScript 2020 中,我们可以使用 globalThis 对象来获取全局对象。
// 在浏览器中获取全局对象 const globalObj = typeof window !== "undefined" ? window : globalThis; // 在 Node.js 中获取全局对象 const globalObj = typeof global !== "undefined" ? global : globalThis;
通过这种方式,我们可以在任何环境中获取到全局对象,而不需要担心代码在不同的环境中出现问题。
在不同的环境中编写通用的代码
在以往的 JavaScript 版本中,我们可能需要编写不同的代码来适应不同的环境。例如,在浏览器中,我们可能需要使用 window 对象来访问全局变量;而在 Node.js 中,我们需要使用 global 对象来访问全局变量。这样会导致代码的可移植性变得很差。
在 ECMAScript 2020 中,我们可以使用 globalThis 对象来编写通用的代码。例如,我们可以编写一个通用的函数来访问全局变量:
-- -------------------- ---- ------- -------- ----------------------- - -- ------- ---------------- --- ------------ - ------ ----------------- - ---- -- ------- ------ --- ----------- -- ------ ------------ --- ------------ - ------ ------------- - ---- -- ------- ------ --- ----------- -- ------ ------------ --- ------------ - ------ ------------- - ----- --- ------------ --- ---- ------ --------- - - ------ -
通过这个函数,我们可以在任何环境中访问全局变量,而不需要担心代码在不同的环境中出现问题。
总结
在 ECMAScript 2020 中,新增了一个全局对象 globalThis,它可以让我们在任何环境中都能够很方便地获取到全局对象。通过 globalThis,我们可以在不同的环境中编写通用的代码,而不需要担心全局对象的差异。在实际开发中,我们可以使用 globalThis 来编写更加通用的代码,提高代码的可移植性和可重用性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/660d18dad10417a222d7f56b