¿Cómo puedo eliminar el EventListener? Adjunto hay un ejemplo rápido de dónde no funciona. ¿Cómo debería ser correcto?
function test_function(a='', b='') { console.log('test_function started. a='+a+', b='+b); } document.body.addEventListener('mousemove', ()=>{ test_function('testa', 'testb'); }); document.body.removeEventListener("mousemove", test_function );test_function no es la función de escucha de eventos del controlador de eventos. es
()=>{ test_function('testa', 'testb') toda esta función anónima.
En este document.body.removeEventListener("mousemove", test_function ); está pasando la referencia de test_function para removeEventListener. pero la función real es ()=>{ test_function('testa', 'testb')
Para usar removeEventListener, puede refactorizar el código de esta manera.
function test_function(a='', b='') { console.log('test_function started. a='+a+', b='+b); } const handleMouseMove = () => test_function('testa', 'testb'); document.body.addEventListener('mousemove', handleMouseMove); document.body.removeEventListener("mousemove", handleMouseMove);comprobar la documentación de mdn,
https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener