我无法理解为什么window
位于self
之下且self
位于window
对象之下。
如果你去dev-tools或Firebug并写window
,你得到DOM window
self
对象的对象。奇怪的是,window
再次位于self
之下!
你可以写
window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self.window.self
仍然可以得到window
对象!
如何?!
答案 0 :(得分:5)
在回复我的一条评论时:
这是一个循环引用,所以它不会结束。仅限编译器 创建一个参考。它恰好是一个参考的参考 创建引用的原始对象。这就是为什么你可以 做window.window.window ...像这样:var obj = {}; obj.obj = obj;。 只创建了一个参考,但它是一个参考 原文,所以你可以做obj.obj.obj.obj.obj.obj.obj === obj。
评论可以在这里看到:Is window really global in Javascript?
答案 1 :(得分:1)