Anonīmo funkciju atsaistīšana JavaScript

Pieņemsim, ka mūsu rindkopām tagad ir piesaistīta anonīma funkcija:

javascriptlet elems = document.querySelectorAll('p');

for (let elem of elems) {
  elem.addEventListener('click', function() {
    console.log(this.textContent);
  });
}

Pieņemsim, ka mēs vēlamies atsaistīt šo funkciju no rindkopas pēc noklikšķināšanas uz šīs rindkopas. Tomēr mūs sagaida problēma: funkcijai nav nosaukuma, kas nozīmē, ka mēs nevarēsim piekļūt tai pēc šī nosaukuma, lai to atsaistītu.

Lai atrisinātu problēmu, funkcijai jāpiešķir nosaukums, pārvēršot to par nosauktu funkcionālo izteiksmi. Darīsim to:

javascriptlet elems = document.querySelectorAll('p');

for (let elem of elems) {
  elem.addEventListener('click', function func() { // piešķīrām funkcijai nosaukumu
    console.log(this.textContent);
  });
}

Tagad šo funkciju var atsaistīt tajā pašā iekšienē:

javascriptlet elems = document.querySelectorAll('p');

for (let elem of elems) {
  elem.addEventListener('click', function func() {
    console.log(this.textContent);
    this.removeEventListener('click', func); // atsaistām funkciju
  });
}
Задание 1

Dots saraksts ul, kurā katrā punktā ir ierakstīts skaitlis. Pārliecinieties, ka, noklikšķinot uz jebkuras li, tās skaitlis palielinās par vienu.

Задание 2

Modificējiet iepriekšējo uzdevumu tā, lai katra li palielinātu savu vērtību tikai pēc pirmā nospiešanas uz tās.

Задание 3

Modificējiet iepriekšējo uzdevumu tā, lai katra li palielinātu savu vērtību tikai tad, ja tās vērtība mazāka par 10.