Melepas Fungsi Anonim di JavaScript
Misalkan sekarang paragraf kita memiliki fungsi anonim yang terikat:
let 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:
let 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:
let elems = document.querySelectorAll('p');
for (let elem of elems) {
elem.addEventListener('click', function func() {
console.log(this.textContent);
this.removeEventListener('click', func); // melepaskan fungsi
});
}
Diberikan daftar ul, di mana setiap item berisi
sebuah angka. Buatlah agar saat
di-klik pada li mana pun, angkanya bertambah
satu.
Modifikasi tugas sebelumnya sehingga
setiap li hanya menambah nilainya
pada klik pertama
pada dirinya.
Modifikasi tugas sebelumnya sehingga
setiap li hanya menambah nilainya
jika nilainya
kurang dari 10.