javascript - 为什么我能够在控制台 window.window.window.window 中执行此操作并返回 window ?

标签 javascript

为什么我可以在控制台 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/

相关文章:

javascript - 仅适用于手机/手机的粘性 div

javascript - NivoSlider错误

javascript - 将 SVG 文件转换为 Raphael 的可能方法有哪些

javascript - Rails 无法删除 Javascript 问题

javascript - 更新二维数组中对象的值

javascript - 如何在 React 中获取数据属性?

javascript - 阻止从网页源访问js文件

javascript - 使菜单处于事件状态

javascript - Fetch 请求出现 500 错误;请求的资源上不存在 'Access-Control-Allow-Origin' header

javascript - 过滤后的交叉过滤器维度与按过滤属性定义维度