gpt4 book ai didi

actionscript-3 - Action Script : Does setting an object to null, 自动移除所有附加的事件监听器?

转载 作者:行者123 更新时间:2023-12-04 06:48:11 26 4
gpt4 key购买 nike

最近我发现自己到处都在写 removeEventListeners,这使得代码非常困惑。我知道这是一个最佳实践等,但总的来说它没有任何意义。垃圾收集器应该自己处理这么简单的任务,不是吗?当 object 设置为 null 时,自动删除所有监听器有那么难吗?

所以我只是想确定是不是这样。将对象设置为 null 会自动删除所有附加的事件监听器吗?

对此有何见解?

更新 :
在我的情况下,情况是这样的 - 我创建一个对象并将一堆事件监听器附加到它,然后过一段时间我需要重新初始化这个对象。当然,将这个对象设置为 null 比手动解除每个监听器的绑定(bind)要容易得多。大多数情况下,监听器都是匿名函数,这意味着如果不进行代码重构,就不可能。当我简单地用 new 重新初始化一个变量时,我没有得到重复的监听器等,但我不确定它是以前的值,以及所有监听器都会被垃圾收集。是吗?

最佳答案

不,您没有将对象设置为空,而是将指向它的指针设置为空。除非程序的任何其他部分(包括监听器)不需要它,否则垃圾收集不会拾取它。您需要自己删除所有监听器,但这不应该阻止您找到一种不那么困惑的方法 - 例如专用的 clearListeners 方法或辅助类等。

关于actionscript-3 - Action Script : Does setting an object to null, 自动移除所有附加的事件监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4748910/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com