JavaScript:window.top和top.window有什么区别

时间:2019-12-06 12:19:40

标签: javascript window

我最近一直在阅读JavaScript var data = '<h3>' + name + '</h3>' + '<p>' + note + '</p>'; 功能,并注意到我可以运行topwindow.top。从我看到的功能上没有区别,因此似乎可以同时运行这两者似乎很奇怪。

top.window

MDN documentation

我的问题是,有谁知道为什么此功能存在两次,并且两者之间有何区别?我想知道浏览器支持方面的差异或与以一种或另一种方式运行它有关的古怪错误。

1 个答案:

答案 0 :(得分:5)

window是全局对象,因此可以像访问独立变量一样访问其属性。因此,在顶层引用top与引用window.top相同。所以问题归结为两者之间的区别

window.top

window.top.window

window.top为您提供了一个窗口对象(它可能与window相同,或者如果您位于iframe中,则可能是一个外部窗口),以及一个窗口的{{1} }属性是对同一window对象的引用(这是一个奇怪的自引用),因此这两个引用也完全相同。你可以指望

window

始终是window.top === window.top.window