ES11新增特性,代表全局对象(所有环境都是)
- 如浏览器中等于window,node中等于global
设计理由
JS语言越来越多被用于各种环境中,处最常见的浏览器,还可以在服务器、手机、甚至硬件上运行。每个环境都有自己的全局对象模型,且访问的语法都不相同。
如在浏览器中,可以通过window、self或frames访问全局对象。NodeJs中,必须使用global。在Web Worker中,只有self可用。
不同的全局对象引用方式让JS实现跨段变得困难,但ES11中引入了一个名为 globalThis 的标准属性来解决问题。
globalThis 提供了一个标准的方式来获取不同环境下的全局对象,可以确保在各种环境下正常工作。
// 浏览器环境console.log(globalThis); // => Window {...}// node.js 环境console.log(globalThis); // => Object [global] {...}// web worker 环境console.log(globalThis); // => DedicatedWorkerGlobalScope {...}
