Puse un oyente para procesar en una función sin nombre (porque tengo que transmitir algunos datos más, 'evt' y 'ref', por ejemplo). Cómo cerrar un oyente en otro archivo remoto, donde proceso estos datos.
índice.js :
import onClick from "./onClick.js"; const ref = document.querySelector('h1'); ref.addEventListener('click', (evt) => {onClick(evt, ref)}onClick.js :
export default function onClick(evt, ref) { console.log(evt); ref.removeEventListener('click', onClick) };Simplemente puede asignar la función anónima a una variable para tener un nombre de función y pasarla a la función onClick. Parece ser antipatrón (pasar la función de llamada a la persona que llama), pero supongo que esto es lo que estás buscando:
índice.js
import onClick from "./onClick.js"; const ref = document.querySelector('h1'); function clickCb(evt) { onClick(evt, ref, clickCb) } ref.addEventListener('click', clickCb}onClick.js
export default function onClick(evt, ref, clickCb) { console.log(evt); ref.removeEventListener('click', clickCb) };