在IE下閉包引發的一個內存泄露。

由於在IE的低版本中,JScript對象和COM對象時使用不一樣的垃圾回收機制。閉包

由於在閉包中包含了包含函數的變量對象,若是咱們的閉包引用循環中引用函數

包含函數的變量對象中的引用時,只要匿名函數存在,該引用至少存在一次,spa

所以佔用的內存永遠也不會被釋放。code

咱們平時寫的一個例子:對象

function eve(){
                    
        var ele = document.getElementById("btn");
                    
             ele.onclick = function(){
                        
                 console.log( ele.id );
                            
         }
                    
 }

解決代碼:blog

function eve(){
                    
          var ele = document.getElementById("btn");
                    
          var id = ele.id;
                    
             ele.onclick = function(){
                        
                     console.log( id );
                            
              };
                    
           ele = null;
                    
}
相關文章
相關標籤/搜索