求解Global对象与window对象的区别
这样理解对不对:window是Global对象在浏览器中的体现,在浏览器中,window对象代表了Global对象?
在浏览器里,非严格模式下(印象中必须是这个),global
等于window
。
所以global
对象指的是什么,取决于运行环境。更像是个抽象概念,window
就很具体了,就是浏览器的一个web api
global
是 javascript 运行时所在宿主环境提供的全局对象,是一个 Object。目前来说最常见的宿主环境是浏览器和 nodejs,浏览器暴露了一系列操作 DOM, Location, History 等 Api 供 Js 调用(即 window 对象)而 nodejs 里则没有浏览器里的 DOM 等,可以运行 for (var i in global){console.log(i)}
查看这个全局对象提供的方法,如 process
, buffer
这些 nodejs 的资源。
另外,宿主环境内所有的内建或自定义的变量/函数全局都是 global
这个全局对象的属性/方法。