Window.window - Web API 接口参考 编辑
摘要
window对象的 window
属性指向这个window对象本身。因此以下表达式所返回的window对象都是同一个。
window.window window.window.window window.window.window.window ...
在网页中,window对象也是一个全局对象。这意味着:
- 脚本中的全局变量实际上是window对象的属性:
var global = {data: 0}; alert(global === window.global); // displays "true"
- 不用写
window.
前缀就可以访问window对象的内置属性:setTimeout("alert('Hi!')", 50); // equivalent to using window.setTimeout. alert(window === window.window); // displays "true"
将 window
属性指向该window对象本身的目的,是为了更容易引用全局对象。不然,就得在最开始写代码的时候进行手动赋值:var window = this;
。
另外一个原因是如果没有这个属性,就不能像这样方便的写: window.open('http://google.com/')
,而只能这样: open('http://google.com/')
使用该属性还有一个原因,有些库,特别是JavaScript模块希望能够提供OOP版本和非OOP版本。例如,如果引用了 this.window.location.href
,JavaScript 模块就可以在它定义的类里面定义一个 window
属性(因为默认没有全局性的 window
变量存在),这个属性可以在将window对象传进这个模块的类的构造器之后被创建。这样,这个类的方法中的 this.window
就指向了window对象。在没有命名空间的版本中,this.window
会重新指向window对象,从而很容易获取到文档的位置。还有一个优点,这个类(即使这个类定义在模块外面)的对象可以随意地改变对window的引用,而如果有一个写死了的window的引用就做不到这样。类内部的默认值仍然可以设置成当前的window对象。
规范
规范 | 状态 | 说明 |
---|---|---|
HTML Living Standard Window.window | Living Standard | 和最新版 HTML 5.1一致 |
HTML 5.1 Window.window | Recommendation | 和HTML5一致 |
HTML5 Window.window | Recommendation | 第一个包含 Window.window 定义的快照 |
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论