为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

料青山看我应如是 2023-04-15 18:14:05
在写JS时有个非常特殊的变量叫window,我非常疑惑它是怎么实现如下功能的<script>function test () {    alert('test'); }// 居然就自动绑定到window里了window.test();</script>看上面的代码,随便在顶层也就是非闭包中定义的function,都会默认被绑定到window这个对象相应的元素内。这个东西符合js规范吗?
查看完整描述

2 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

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

查看完整回答
反对 回复 2023-04-17
?
慕容森

TA贡献1853条经验 获得超18个赞

window对象是由js的宿主环境浏览器提供的,跟js语言本身无关。
浏览器初始网页的时候会自动创建一个window对象,
解析网页中的js代码的时候会将全局变量和函数绑定到window对象上。
个人观点,仅供参考

查看完整回答
反对 回复 2023-04-17
  • 2 回答
  • 0 关注
  • 80 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信