开发者社区> 问答> 正文

为什么第一段代码可能会出现内存泄露。

screenshot
我知道是Closure造成的问题。但是具体是怎么出现的谁来解释下。。。

展开
收起
a123456678 2016-07-13 11:30:44 1950 0
1 条回答
写回答
取消 提交回答
  • 应该是第一个方式里面,首先有一个DOM元素对象button,然后人为定义button的属性onclick是一个闭包函数,在JS里面,闭包函数是可以访问外层函数的变量,也就是onclick的闭包函数里面引用到了button元素,即使你没有使用这个东西,这就循环引用了。

    逻辑上来说就是:如果要释放button对象,需要先删除onclick函数,可是删除onclick函数就需要先释放对button对象的引用,然后要释放button的引用又需要先删除onclick函数,就这样死循环下去,内存泄漏了。

    2019-07-17 19:55:29
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
内存取证与IaaS云平台恶意行 为的安全监控 立即下载
云服务器ECS内存增强型实例re6全新发布 立即下载
不止代码 立即下载