为什么我能在控制台中执行此操作window.window.window.window
并.window
无限追加并返回DOM窗口?
因为window
对象具有window
指向自身的属性.
这跟你写的一样:
var foo = {};
foo.foo = foo;
console.log(foo.foo.foo.foo.foo.foo.foo);
Run Code Online (Sandbox Code Playgroud)
为了好玩,window
对象还有一个self
属性,指向自身和(如果您不在框架集中)一个top
也指向它的属性.这样你就可以写:
console.log(window.window.top.self.top.self.window.window.self.top.top.self);
Run Code Online (Sandbox Code Playgroud)