Как называется метод, снимающий событие с узла?
DOM и браузер
Метод, снимающий обработчик события с узла, называется `removeEventListener`. Ему передают тот же тип события и ту же ссылку на функцию, что при добавлении.
removeEventListener
element.removeEventListener('click', handler);Снимает обработчик, добавленный через addEventListener.
Та же ссылка на функцию
Нужна точно та же ссылка на функцию, что при добавлении:
function handler() {}
element.addEventListener('click', handler);
element.removeEventListener('click', handler); // ✓ работает
// НЕ работает с анонимными/новыми функциями:
element.addEventListener('click', () => {});
element.removeEventListener('click', () => {}); // ✗ другая ссылкаПоэтому для снятия обработчик сохраняют в переменную.
Опции должны совпадать
Если добавляли с capture, снимать тоже с capture:
element.addEventListener('click', handler, { capture: true });
element.removeEventListener('click', handler, { capture: true });Альтернатива — AbortController
Современный способ снять несколько обработчиков сразу:
const controller = new AbortController();
element.addEventListener('click', handler, { signal: controller.signal });
controller.abort(); // снимает обработчикonce
Обработчик с { once: true } снимается автоматически после первого срабатывания.
Коротко для собеседования
Снимает обработчик removeEventListener('click', handler) — нужна та же ссылка на функцию (анонимные снять нельзя) и совпадающие опции (capture). Обработчик сохраняют в переменную для снятия. Современно — AbortController (signal + abort() снимает несколько сразу); { once: true } снимается автоматически.