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

本文深入探讨了Global和Window对象的区别与联系。Global对象作为ECMAScript中的全局对象,其存在独立于宿主环境;而Window对象则特指浏览器环境中的全局对象,承载着Global的角色。了解两者关系对于理解JavaScript全局作用域至关重要。

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对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值