假设我有一些随机代码如下:
<script>
this.fn = (function() {
var element = document.createElement("div");
element.innerHTML = Object.keys(self) +
"<br />" + Object.keys(window) +
"<br />" + Object.keys(top);
self["document"].body.appendChild(element);
return arguments.callee;
})();
</script>
不仅要与上述代码有关,还有什么区别:
Self
,Document
,This
,Top
,Window
?
每个人的最佳用例是什么?
答案 0 :(得分:10)
self
&amp; window
:它们都引用脚本所在和运行的当前窗口(或框架)。有关详细信息和示例,请参阅here。
document
:引用DOM容器,可以访问标题和正文内容。有关详细信息和示例,请参阅here。
this
:引用执行代码的JavaScript对象。直接在<script>
标记内编写的JavaScript代码和函数this
引用window
。如果对象的函数需要在同一对象中调用方法,请使用this.method_name();
。
top
:引用框架层次结构中最顶层的window
对象。如果您使用框架并想要从子框架内操纵整个框架集窗口,请使用top
,例如top.close();
关闭包含所有帧的当前窗口。