Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Is top===self在javascript中始终为真_Javascript - Fatal编程技术网

Is top===self在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引用最顶部的窗口。而自引用当前窗口 这什么时候有意义?例如

我在调试一个javascript应用程序时遇到了这段代码

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
相关的代码,我们只是猜测它的作用。请创建一个。我更新了问题