客户端javascript中的自引用窗口属性是什么?

时间:2015-08-10 19:04:38

标签: javascript client-side

我正在学习一本关于Javascript的书,“ Javascript:The Definitive Guide - David Flanagan ”。本书的第3章讨论了Global对象,在这里,他们说

  

全局Window对象具有自引用窗口属性   用来代替 this 来引用全局对象。

我从上面的内容中理解的是窗口不是对象而是自引用,但是有人可以详细解释它是如何...以及如何为自定义对象创建自引用属性。

在chrome控制台中,如果我输入窗口,我会

  

窗口{顶部:窗口,位置:位置,文档:文档,窗口:   Window,external:Object ...}

如何为自定义对象实现相同功能。对不起,如果我理解这完全错了,请原谅我,我是JS的新手。

2 个答案:

答案 0 :(得分:3)

自引用意味着Window对象具有引用自身的属性。

window.window = window

当您在window范围内this === window时,您可以使用以下方法引用window.location等属性。

  1. window.location
  2. this.location
  3. location
  4. window.window.location
  5. this.window.location
  6. 等...

答案 1 :(得分:2)

你明白错了。这意味着window对象有一个名为window的成员,它是对window对象本身的引用。也就是说,

window.window === window

在报价中添加一些引号可能会稍微澄清一下:

  

全局Window对象具有自引用“窗口”属性...

(即全局Window对象有一个名为“window”的属性,它是自引用的。)

虽然它很少有用,但为自定义对象创建一个,你只需将自己分配给一个成员元素。

var obj = {};
obj.obj = obj;