2011-05-26 73 views
4

比方说,我有一个像下面的一些随机码:自文档该顶部窗口

<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> 

不仅具有与上面的代码做的,有什么区别:
SelfDocumentThisTopWindow

每个应用程序的最佳用例是什么?

回答

10

self & window:它们都引用在脚本位于和运行的当前窗口(或帧)。有关详细信息和示例,请参见here

document:引用DOM容器,使您可以访问标题和正文内容。有关详细信息和示例,请参阅here

this:引用在其下执行代码的JavaScript对象。 JavaScript代码和函数直接写入<script>标签中有this参考window。如果对象的函数需要调用同一对象中的方法,请使用this.method_name();

top:引用框架层次结构中最上面的window对象。如果您使用框架并希望从子框架内操纵整个框架集窗口,请使用top(例如, top.close();关闭包含所有帧的当前窗口。