2011-05-26 76 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();關閉包含所有幀的當前窗口。