Одврзување на анонимни функции во JavaScript
Нека сега на нашите параграфи е врзана анонимна функција:
let elems = document.querySelectorAll('p');
for (let elem of elems) {
elem.addEventListener('click', function() {
console.log(this.textContent);
});
}
Нека сакаме да ја одврземе оваа функција од параграфот по клик на овој параграф. Сепак, нè чека проблем: функцијата нема име, што значи дека не можеме да се обратиме кон неа по тоа име за да ја одврземе.
За решавање на проблемот треба да дадеме име на функцијата, правејќи ја од неа именуван функционален израз. Ајде да го направиме ова:
let elems = document.querySelectorAll('p');
for (let elem of elems) {
elem.addEventListener('click', function func() { // дадовме име на функцијата
console.log(this.textContent);
});
}
Сега оваа функција може да се одврзе внатре во самата неа:
let elems = document.querySelectorAll('p');
for (let elem of elems) {
elem.addEventListener('click', function func() {
console.log(this.textContent);
this.removeEventListener('click', func); // ја одврзуваме функцијата
});
}
Даден е список ul, во кој секоја ставка содржи
број. Направете така што при
клик на било која li нејзиниот број да се зголемува
за еден.
Модифицирајте ја претходната задача така
што секоја li ќе го зголемува својот
број само при првото кликнување
на неа.
Модифицирајте ја претходната задача така
што секоја li ќе го зголемува својот
број само ако нејзината вредност
е помала од 10.