js對象屬性

       

     function createDocument(){
     
       if(typeof arguments.callee.activeXString!="string"){
       
          var versions=["MSXML2.DOMDocument.6.0","MSXML2.DOMDocument.3.0","MSXML2.DOMDocument"],i,len;
          
           for(var i=0;i<versions.length;i++){
               try{
                  new ActiveXObject(versions[i]);
                  arguments.callee.activeXString=versions[i];
                  break;
               
               }catch(error){
               
               }
           }
       }
           return new ActiveXObject(arguments.callee.activeXString);
     }

     

  這是一個創建ActiveXObject對象的方法,它可以兼容IE的多個版本。開始對於這個方法中的arguments.callee.activeXString,非常不理解。爲什麼不能使用activeXString,或者是this.activeXString呢。通過查閱資料發現,arguments.callee.activeXString是創建當前函數的對象名爲activeXString。js函數即是對象,相當於創建了一個對象屬性。

       1.使用arguments.callee.activeXString

               執行兩次函數,只會檢查一次IE版本,第二次可以直接獲取arguments.callee.activeXString的值。

        2.使用this.activeXString或者activeXString。

              執行兩次函數,會檢查兩次IE版本,相當於存入activeXString的值,在每次運行後銷燬。

發佈了17 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章