Anonüümsete funktsioonide sidumise lahtiharutamine JavaScriptis

Oletame nüüd, et meie lõikudele on seotud anonüümne funktsioon:

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

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

Oletame, et soovime lahti harutada selle funktsiooni lõigust pärast sellele lõigule klõpsamist. Siiski ootab meid probleem: funktsioonil pole nime, mis tähendab, et me ei saa sellele nime järgi pöörduda, et seda lahti harutada.

Probleemi lahendamiseks tuleb funktsioonile nimi anda, muutes selle nimetatud funktsionaalavaldiseks. Teeme selle:

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

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

Nüüd saab selle funktsiooni enda sees lahti harutada:

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

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

Antud on loetelu ul, mille iga punktis on kirjas number. Tehke nii, et klõpsates mis tahes li peale, suurendataks selle numbrit ühe võrra.

Задание 2

Muutke eelmist ülesannet nii, et iga li suurendaks oma väärtust ainult esimesel vajutusel endale.

Задание 3

Muutke eelmist ülesannet nii, et iga li suurendaks oma väärtust ainult siis, kui selle väärtus on väiksem kui 10.