Який обробник запуститься?
У змінній button знаходиться кнопка. Спочатку на ній немає обробників.
Який з обробників запуститься? Що буде виведено під час кліку після виконання коду?
button.addEventListener("click", () => alert("1")); button.removeEventListener("click", () => alert("1")); button.onclick = () => alert(2); Відповідь: 1 і 2.
Перший обробник спрацює, тому що він не був вилучений методом removeEventListener. Щоб видалити обробник, необхідно передати саме ту функцію, яка була призначена як обробник. Попри те, що код ідентичний, в removeEventListener передається нова, інша функція.
Щоб видалити функцію-обробник, потрібно десь зберегти посилання на неї, наприклад:
function handler() { alert(1); } button.addEventListener("click", handler); button.removeEventListener("click", handler); Обробник button.onclick спрацює все одно. Разом з addEventListener.