ანონიმური ფუნქციების გამოკვეთა 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-ზე.