Melepas Fungsi Anonim di JavaScript

Misalkan sekarang paragraf kita memiliki fungsi anonim yang terikat:

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

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

Misalkan kita ingin melepaskan fungsi ini dari paragraf setelah mengklik paragraf tersebut. Namun, kita menghadapi masalah: fungsi tersebut tidak memiliki nama, yang berarti kita tidak dapat merujuknya dengan nama itu untuk melepaskannya.

Untuk menyelesaikan masalahnya, kita perlu memberi nama pada fungsi tersebut, mengubahnya menjadi ekspresi fungsional bernama. Mari lakukan ini:

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

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

Sekarang fungsi ini dapat dilepas di dalam dirinya sendiri:

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

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

Diberikan daftar ul, di mana setiap item berisi sebuah angka. Buatlah agar saat di-klik pada li mana pun, angkanya bertambah satu.

Задание 2

Modifikasi tugas sebelumnya sehingga setiap li hanya menambah nilainya pada klik pertama pada dirinya.

Задание 3

Modifikasi tugas sebelumnya sehingga setiap li hanya menambah nilainya jika nilainya kurang dari 10.