首页 > 代码库 > 在IE下闭包引起的一个内存泄露。
在IE下闭包引起的一个内存泄露。
因为在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下闭包引起的一个内存泄露。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。