JavaScript中Global对象和window对象的区别

Global对象

单体内置对象,即不依赖于宿主环境的对象,这些对象在ECMAScript程序执行之前就已经存在了,就是一切全局里存在的变量和函数都是它的属性和方法。也就是那些在宿主环境(常见的宿主环境:浏览器和nodejs)里所有的内建或自定义的变量和函数全局都是Global这个的全局对象和方法。它更像是一个抽象概念,而要指明它是什么,取决于程序在什么环境中运行。(例如:js不仅可以书写页面,在书写页面中,global相对于浏览器这个环境而言就是window,但是其他环境就不一定了)

window对象:

是相对于Web浏览器而言的,它并不是ECMAScript规定的内置对象,它是浏览器的Web API,是存在于浏览器之中的,也就是离开浏览器这个宿主环境的话就不存在此对象了。

《JavaScript高级程序设计第3版》:在所有代码执行之前,作用域中就存在两个内置对象:Global和Math。在大多数ECMAScript实现中都不能直接访问Global对象,不过,Web浏览器实现了承担该角色的window对象。全局变量和函数都是Globla对象的属性。

结论:JavaScript中的window对象扮演ECMAScript中的Global对象,所以Global对象包含着window对象

猜你喜欢

转载自blog.csdn.net/CWH0908/article/details/86771114
今日推荐