Is top===self在javascript中始终为真
我在调试一个javascript应用程序时遇到了这段代码Is top===self在javascript中始终为真,javascript,Javascript,我在调试一个javascript应用程序时遇到了这段代码 if (self === top) { // do some work } 我已经看过很多次了这个和自我,我甚至不知道top的存在。 这里self===top输出true那么为什么我们有相同的对象。 更新: 1) 我的问题是top始终将窗口称为self 2) 在web worker中,我们无法直接访问窗口对象,因此我们使用self,我们可以使用top吗?在窗口对象中,top引用最顶部的窗口。而自引用当前窗口 这什么时候有意义?例如
if (self === top) {
// do some work
}
我已经看过很多次了这个
和自我
,我甚至不知道top
的存在。这里
self===top
输出true那么为什么我们有相同的对象。更新:
1) 我的问题是
top
始终将窗口称为self
2) 在web worker中,我们无法直接访问
窗口
对象,因此我们使用self
,我们可以使用top
吗?在窗口
对象中,top引用最顶部的窗口。而自引用当前窗口
这什么时候有意义?例如,在iframe上有一个页面,如下所示
当您在该iframe中引用脚本时
if (self === top) {
// do some work
}
上面的代码片段的计算结果将不会为true。因为self将拥有iframe
窗口
对象和对最顶端浏览器窗口
对象的顶部引用。需要更多代码,猜测self
可能这个可能窗口
或者iframe窗口
和顶部
可能总是顶部窗口
。因此,如果(self===top)
只想确定它是否在顶部窗口中
而不是在iframe中self
也是窗口
…并且top
是“最顶部”…也就是说,如果您的页面位于iframe中,top
不是self
我不知道top
,这就是为什么我问为什么在DOM api中有两个。@Srinivas没有与self
相关的代码,我们只是猜测它的作用。请创建一个。我更新了问题