Функсияҳои гумномаро аз ҳам ҷудо кардан дар 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 камтар бошад.