为什么我可以在控制台window.window.window.window中执行此操作并无限附加追加.window并返回DOM窗口?

最佳答案

因为window对象具有指向自身的window属性。

就像您写的一样:

var foo = {};
foo.foo = foo;
console.log(foo.foo.foo.foo.foo.foo.foo);

为了好玩,window对象还具有指向自身的 self 属性,以及(如果您不在框架集中)还具有指向它的 top 属性。因此,您可以编写:
console.log(window.window.top.self.top.self.window.window.self.top.top.self);

关于javascript - 为什么我可以在控制台window.window.window.window中执行此操作,并返回window?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9813378/

10-11 05:48