「ES12」中新增了 globalThis 对象并解释了如何使用它
JavaScript 是一门广泛应用于 Web 开发中的脚本语言,它在不断地演进,吸纳新的功能和特性。在最新的标准 ES12 中,新增加了一个重要的全局对象 globalThis,它为前端开发者带来更方便、更统一的全局变量访问方式。
globalThis 对象的概述
在 ES5 之前,全局变量可以通过 window 对象访问,而在 Node.js 中则可以通过 global 对象访问。这种访问方式的差异使得跨平台开发时需要写出平台特定的代码,增加了代码的复杂性和维护难度。
在 ES12 中,新增加了全局对象 globalThis,它是全局作用域下的顶级对象,可让开发者使用统一的方式访问全局变量,无论在浏览器还是 Node.js 中,都能保证相同的行为。
globalThis 对象的应用
- 访问全局变量
在之前的版本中,只能通过 window 或 global 对象访问全局变量,而 globalThis 可以访问全局变量或全局对象,如下所示:
// 浏览器环境下 console.log(globalThis === window); // true // Node.js 环境下 console.log(globalThis === global); // true
- 跨平台环境下的使用
有了 globalThis 对象,我们可以在跨平台开发时使用同一的方法来访问全局变量,具有更好的可读性和可维护性,如下所示:
// 跨平台 const root = typeof self === 'object' && self.self === self && self || typeof global === 'object' && global.global === global && global || this; console.log(root); // 输出全局对象
- 在函数中使用全局变量
有时,我们需要在函数中使用全局变量,但在不同的平台下,使用方式不同。此时,可以使用 globalThis 对象来访问全局变量,如下所示:
-- -------------------- ---- ------- -------- --------------- - ------ ----------- - -- ------ --------------------------- --- -------- -- ---- -- ------- --- --------------------------- --- -------- -- ----展开代码
结语
尽管 globalThis 对象的特性并不算是很复杂,但它却可以使得开发者的代码更为简洁、统一和可维护。在跨平台开发时,使用 globalThis 对象可以避免代码中出现特定平台的代码,增加了代码的可读性和可维护性,开发者应该在实际开发过程中多加利用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67b8538c306f20b3a6602fe4