为什么AS3默认不使用弱引用?(在事件听众中)

rin*_*ogo 2 flash actionscript-3

调用addEventListener()时weakReference的默认值为false.使用weakReferences可以解决许多内存问题; 事实上,一些行业专家"强烈建议总是在听众中使用弱引用".

如果是这种情况,有人能为我提供一个很好的理由,为什么weakReference默认为true?(请注意,我不是在问为什么有人会想要一个不是weakReference的监听器,而是为什么weakReference = false是默认值)

谢谢!:)

Ano*_*on. 5

在修改对象外部的状态的事件侦听器上使用弱引用会导致不可预测的行为.如果你把它留给GC来删除那些听众,你根本不知道它什么时候会这样做.

你应该确保在完成对象时自己删除事件监听器 - 因此,你希望在没有弱监听器的情况下进行开发,这样当你忘记这样做时它就显而易见了,而不是被它覆盖垃圾收集器.