13 of 17 menu

Ralat this dalam Pengendali Anak Panah JavaScript

Kebelakangan ini, menjadi trend untuk menggunakan fungsi anak panah di mana-mana sahaja menggantikan fungsi biasa. Walau bagaimanapun, fungsi ini mempunyai kelemahan - mereka tidak mengekalkan this. Mari kita lihat masalah yang boleh kita hadapi disebabkan oleh ini.

Katakan kita mempunyai butang:

<button>teks</button>

Dapatkan rujukan kepada butang ini dalam pembolehubah:

let button = document.querySelector('button');

Lampirkan pengendali peristiwa pada butang, dengan menggunakan fungsi anak panah:

button.addEventListener('click', () => { console.log(this.textContent); });

Di sinilah kita akan dikejutkan: this dalam fungsi anak panah tidak akan merujuk kepada elemen di mana peristiwa itu berlaku.

Mari kita lihat apa yang boleh dilakukan mengenainya.

Penyelesaian pertama

Anda boleh berhenti menggunakan this dan menggunakan pembolehubah yang mana peristiwa itu diikat:

button.addEventListener('click', () => { console.log(button.textContent); });

Penyelesaian kedua

Anda boleh mendapatkan elemen yang kepadanya peristiwa diikat melalui event.target:

button.addEventListener('click', (event) => { console.log(event.target.textContent); });

Penyelesaian ketiga

Anda boleh berhenti menggunakan fungsi anak panah dan menggunakan fungsi biasa:

button.addEventListener('click', function() { console.log(this.textContent); });
Melayu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan kuki untuk operasi laman web, analisis dan personalisasi. Pemprosesan data dijalankan mengikut Polisi Kerahsiaan.
terima semua tataletak tolak