Membatalkan Pengikatan Fungsi Tanpa Nama dalam JavaScript

Katakan sekarang kepada perenggan kami terikat satu fungsi tanpa nama:

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

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

Katakan kita ingin membatalkan pengikatan fungsi ini daripada perenggan selepas klik pada perenggan ini. Namun, kita akan menghadapi masalah: fungsi itu tidak mempunyai nama, yang bermaksud kita tidak boleh merujuk kepadanya dengan nama itu untuk membatalkan pengikatannya.

Untuk menyelesaikan masalah, kita perlu memberikan nama kepada fungsi itu, menjadikannya ungkapan fungsian bernama. Mari lakukan ini:

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

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

Sekarang fungsi ini boleh dibatalkan pengikatannya di dalam fungsi itu sendiri:

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

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

Diberi senarai ul, di mana setiap item merekodkan satu nombor. Lakukan supaya apabila klik pada mana-mana li nombornya meningkat sebanyak satu.

Задание 2

Ubah suai tugas sebelumnya supaya setiap li meningkatkan nilainya hanya pada tekan pertama padanya.

Задание 3

Ubah suai tugas sebelumnya supaya setiap li meningkatkan nilainya hanya jika nilainya kurang daripada 10.