码迷,mamicode.com
首页 > 其他好文 > 详细

在IE下闭包引起的一个内存泄露。

时间:2014-10-11 20:53:26      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   使用   ar   sp   div   on   

因为在IE的低版本中,JScript对象和COM对象时使用不同的垃圾回收机制。

因为在闭包中包含了包含函数的变量对象,如果我们的闭包引用循环中引用

包含函数的变量对象中的引用时,只要匿名函数存在,该引用至少存在一次,

因此占用的内存永远也不会被释放。

我们平时写的一个例子:

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

解决代码:

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

 

在IE下闭包引起的一个内存泄露。

标签:style   blog   color   io   使用   ar   sp   div   on   

原文地址:http://www.cnblogs.com/hellome/p/4019488.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!