addEventListener
函数的五个参数含义:
-
type:表示事件的类型,如
MouseEvent.CLICK
、KeyboardEvent.KEY_DOWN
等。 -
listener:是一个函数,用于处理特定事件的事件处理函数。
-
useCapture:一个布尔值,指示事件是否在捕获阶段(
true
)或冒泡阶段(false
)触发。 -
priority:一个整数值,用于指定事件侦听器的优先级。优先级越高,事件处理函数越早被调用。
-
useWeakReference:一个布尔值,用于指示是否使用弱引用。如果为
true
,则使用弱引用;如果为false
,则使用强引用。
强引用和弱引用的区别:
-
强引用:当事件侦听器使用强引用时,即
useWeakReference
参数设置为false
,事件侦听器会保持对侦听器对象的引用。这意味着,即使侦听器对象已经不再需要,仍然会保持对它的引用,直到移除事件侦听器或显示地将其设置为null
。 -
弱引用:当事件侦听器使用弱引用时,即
useWeakReference
参数设置为true
,事件侦听器不会保持对侦听器对象的强引用。如果侦听器对象没有其他强引用,它可能会被垃圾回收器回收,即使事件侦听器仍然存在。
使用弱引用可以避免因为事件侦听器对象被保持而导致的内存泄漏问题。在不再需要事件侦听器时,建议使用弱引用,以便让垃圾回收器能够释放不再需要的对象。