首页 新闻 会员 周边

这个内存泄露的原因是什么啊?

0
悬赏园豆:10 [已解决问题] 解决于 2015-12-25 18:19
function bindEvent() 
{ 
    var obj=document.createElement("XXX"); 
    obj.onclick=function(){ 
        //Even if it's a empty function 
    } 
}
大贱豪的主页 大贱豪 | 初学一级 | 园豆:127
提问于:2015-12-25 17:58
< >
分享
最佳答案
1

假设A()执行时创建的作用域对象叫做ScopeA 找到以下引用关系
ScopeA引用DOM对象document.createElement("xxx");
DOM对象document.createElement("div");引用函数function(){ //Even if it's a empty function }
函数function(){ //Even if it's a empty function }引用ScopeA 出现了循环引用 

 

总结闭包。

收获园豆:10
s_p | 初学一级 |园豆:138 | 2015-12-25 18:13

 好的,看来好好在好好看下作用域链。谢谢。

大贱豪 | 园豆:127 (初学一级) | 2015-12-25 18:19

 不对,还有问题,那么为什么这个东西只有在低级IE版本下才会内存泄露,高级浏览器,并不会呢。

大贱豪 | 园豆:127 (初学一级) | 2015-12-25 18:21

@大贱豪: 不好意思,答案是都会,只是我的测试程序被浏览器优化了,而低级浏览器没有,所以出现了错觉。

大贱豪 | 园豆:127 (初学一级) | 2015-12-25 18:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册