这看起来就像是其它语言里的命名空间,但是JS里能实现这种东西吗?

在写JS时有个非常特殊的变量叫window,我非常疑惑它是怎么实现如下功能的

<script>function test () {    alert('test');
}// 居然就自动绑定到window里了window.test();</script>

看上面的代码,随便在顶层也就是非闭包中定义的function,都会默认被绑定到window这个对象相应的元素内。这个东西符合js规范吗?


料青山看我应如是
浏览 82回答 2
2回答

饮歌长啸

ECMA中的全局对象,window就是各浏览器对这个对象实现,然后各家还添加了一些别的内容,全局作用域下的任何变量都是window的属性,或者方法。

慕容森

window对象是由js的宿主环境浏览器提供的,跟js语言本身无关。浏览器初始网页的时候会自动创建一个window对象,解析网页中的js代码的时候会将全局变量和函数绑定到window对象上。个人观点,仅供参考
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript