javascript - 窗口对象中的奇怪自身对象

标签 javascript browser

我无法理解为什么 windowself 下,而 selfwindow 对象下。

如果您转到开发工具或 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 对象!

怎么办?!

最佳答案

在对我的其中一条评论的回应中:

It is a circular reference, so it doesn't end. The compiler only creates one reference. It just happens to be a reference back to the original object on which the reference was created. That's why you can do window.window.window... Like this: var obj = {}; obj.obj = obj;. There's only one reference created but it's a reference back to the original, so you can do obj.obj.obj.obj.obj.obj.obj === obj.

评论可以在这里看到:Is window really global in Javascript?

关于javascript - 窗口对象中的奇怪自身对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7015635/

相关文章:

javascript - Css:绝对定位的 div 容器中的两个容器

javascript - 使用 angular8 在循环中传递参数 onclick

html - 了解浏览器呈现 "quirk"

javascript - 如何使用 useRef 和 react Hook 在 ReactJS 中设置对自定义输入的关注?

javascript - 如果循环中至少有一个元素返回 false,如何将变量设置为 false?

javascript - 在每帧中的 rAF 之前运行任务的可靠方法

c++ - IWebBrowser2 可以将 cookie 存储在用户指定的文件夹中吗?

debugging - 如何规避浏览器刷新时的缓存重新验证?

c# - 带有 WPF WebBrowser 控件的本地网页中的 VLC ActiveX

javascript - 解析查询未注册类名