Անանուն ֆունկցիաների անբաժանումը 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-ից: