如果除去对目标的外部引用,是否需要removeEventListener?

时间:2019-02-07 10:51:06

标签: javascript

如果我这样监听obj上的事件:

obj.addEventListener("click", listener)

假设仅从另一个对象(obj)引用obj2.obj = obj,如果在程序执行的某个时刻删除了该引用(obj2.obj = null),则{{ 1}}收集到垃圾,还是需要先致电obj?我对JS VM中的GC没有很深入的了解,所以我不确定侦听器是否引入了某种循环依赖关系,这些循环依赖关系可能会使obj.removeEventListener("click", listener)永远存活。它是否实际上取决于objobj的其他属性?我知道它会变得更加复杂,例如listener,甚至更糟糕的listener.bind(this) ...

0 个答案:

没有答案