JavaScript-da Anonim Funksiyalarni Bog‘lamaslik
Endi faraz qilaylik, bizning abzatslarimizga anonim funksiya bog‘langan:
let elems = document.querySelectorAll('p');
for (let elem of elems) {
elem.addEventListener('click', function() {
console.log(this.textContent);
});
}
Faraz qilaylik, biz ushbu abzats ustiga bosgandan so‘ng unga bog‘langan funksiyani bog‘lamaslikni istaymiz. Biroq, bizni muammo kutmoqda: funksiyaning nomi yo‘q, shuning uchun uni bog‘lamaslik uchun nomi bilan murojaat qila olmaymiz.
Muammoni hal qilish uchun funksiyaga nom berish kerak, uni nomlangan funksional ifodaga aylantirish orqali. Buni amalga oshiramiz:
let elems = document.querySelectorAll('p');
for (let elem of elems) {
elem.addEventListener('click', function func() { // funksiyaga nom berildi
console.log(this.textContent);
});
}
Endi bu funksiyani uning o‘zi ichidan bog‘lamaslik mumkin:
let elems = document.querySelectorAll('p');
for (let elem of elems) {
elem.addEventListener('click', function func() {
console.log(this.textContent);
this.removeEventListener('click', func); // funksiyani bog‘lamaymiz
});
}
ul ro‘yxati berilgan, uning har bir bandida
raqam yozilgan. Har qanday li ustiga bosilganda
uning raqami bittaga oshiriladigan qiling.
Oldingi vazifani shunday o‘zgartiringki,
har bir li o‘z qiymatini faqat birinchi marta
unga bosilganda oshirsin.
Oldingi vazifani shunday o‘zgartiringki,
har bir li faqat uning qiymati
10 dan kichik bo‘lsagina o‘z qiymatini oshirsin.