登录

javascript - 关于js中内存泄露的问题

在阅读jQuery源码时,发下了下面一句代码:

//elem表示要绑定事件的节点,eventHandle表示事件函数
eventHandle.elem = elem;

if ( elem.addEventListener ) {
    elem.addEventListener( type, eventHandle, false );
}

elem = null;

代码省略了一部分,官方的注释是为了防止ie下的内存泄漏。之前所了解的ie下的内存泄漏是因为循环引用所导致的,在DOM对象中引用原生的js对象或者原生js对象引用DOM对象导致内存的泄漏。请问上面的代码是如何防止ie下内存泄漏问题的?

# JavaScript
阿神阿神2201 天前366 次浏览

全部回复(2) 我要回复

  • 阿神

    阿神2017-04-11 11:43:57

    elem参照没用到时给定为null,
    也就是最后这句,
    因为没看到全部代码,不过应该有促进gc(内存垃圾回收)的作用。

    可是为什么会有把dom节点存储到事件函数的操作

    MS独有的样式,参考下面的连结中的MSDN文章,里面就有这个语法:

    https://msdn.microsoft.com/en...

    回复
    0
  • 大家讲道理

    大家讲道理2017-04-11 11:43:57

    应该在某个地方还有eventhandle.elem=null或者eventhandle=null才会最终释放吧?

    回复
    0
  • 取消回复发送