Удаление функции после срабатывания
например есть функция которая при каждом клике печатает число, и после того когда количества чисел 3 функция удаляется, нужно чтобы удалился а не прекратил работу
это пример, а так, просто нужна была функция которая удаляется после срабатывания чтобы не повторно не могли звать функцию
Ответы (1 шт):
Автор решения: OPTIMUS PRIME
→ Ссылка
В какой-нибудь внешней переменной, или прямо в объекте функции, можно завести считалку вызовов. Как только дойдет до 3 — удалить обработчик.
let btn = document.querySelector("#bubu");
btn.addEventListener("click", function _self() {
console.log( "Какое-то число", _self.call_count );
_self.call_count = (_self.call_count || 0) + 1;
if (_self.call_count == 3) btn.removeEventListener("click", _self);
});
<button id="bubu"> Test </button>
На первой итерации _self.call_count - undefined.
Получается _self.call_count = (undefined || 0) + 1; → 0 + 1, а дальше при вызовах уже увеличивается на 1.
let k = 0, btn = document.querySelector("#bubu");
btn.addEventListener("click", function _self() {
console.log( "Какое-то число", k );
if (++k == 3) btn.removeEventListener("click", _self);
});
<button id="bubu"> Test </button>