我正在学习一本关于Javascript的书,“ Javascript:The Definitive Guide - David Flanagan ”。本书的第3章讨论了Global对象,在这里,他们说
全局Window对象具有自引用窗口属性 用来代替 this 来引用全局对象。
我从上面的内容中理解的是窗口不是对象而是自引用,但是有人可以详细解释它是如何...以及如何为自定义对象创建自引用属性。
在chrome控制台中,如果我输入窗口,我会
窗口{顶部:窗口,位置:位置,文档:文档,窗口: Window,external:Object ...}
如何为自定义对象实现相同功能。对不起,如果我理解这完全错了,请原谅我,我是JS的新手。
答案 0 :(得分:3)
自引用意味着Window
对象具有引用自身的属性。
window.window = window
当您在window
范围内this === window
时,您可以使用以下方法引用window.location
等属性。
window.location
this.location
location
window.window.location
this.window.location
答案 1 :(得分:2)
你明白错了。这意味着window
对象有一个名为window
的成员,它是对window
对象本身的引用。也就是说,
window.window === window
在报价中添加一些引号可能会稍微澄清一下:
全局Window对象具有自引用“窗口”属性...
(即全局Window对象有一个名为“window”的属性,它是自引用的。)
虽然它很少有用,但为自定义对象创建一个,你只需将自己分配给一个成员元素。
var obj = {};
obj.obj = obj;