我最近一直在阅读JavaScript var data = '<h3>' + name + '</h3>' + '<p>' + note + '</p>';
功能,并注意到我可以运行top
或window.top
。从我看到的功能上没有区别,因此似乎可以同时运行这两者似乎很奇怪。
top.window
我的问题是,有谁知道为什么此功能存在两次,并且两者之间有何区别?我想知道浏览器支持方面的差异或与以一种或另一种方式运行它有关的古怪错误。
答案 0 :(得分:5)
window
是全局对象,因此可以像访问独立变量一样访问其属性。因此,在顶层引用top
与引用window.top
相同。所以问题归结为两者之间的区别
window.top
和
window.top.window
window.top
为您提供了一个窗口对象(它可能与window
相同,或者如果您位于iframe中,则可能是一个外部窗口),以及一个窗口的{{1} }属性是对同一window
对象的引用(这是一个奇怪的自引用),因此这两个引用也完全相同。你可以指望
window
始终是window.top === window.top.window
。