13 of 17 menu

Klaida this JavaScript rodykliniame doroklyje

Pastaruoju metu tapo madinga visur naudoti rodyklines funkcijas vietoj įprastų. Šios funkcijos, tačiau, turi spąstų - jos neišsaugo this. Pažiūrėkime, su kokią problema dėl to galima susidurti.

Tarkime, kad turime mygtuką:

<button>text</button>

Gaukime nuorodą į šį mygtuką į kintamąjį:

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

Priskirkime mygtukui įvykio doroklį, pasinaudoję rodykline funkcija:

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

Štai čia mūsų ir laukia staigmena: this rodyklinių funkcijoje nebus susijęs su elementu, kuriame įvyko įvykis.

Pažiūrėkime, ką su tuo galima padaryti.

Pirmasis sprendimas

Galima atsisakyti this naudojimo ir pasinaudoti kintamuoju, su kuriuo susietas įvykis:

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

Antrasis sprendimas

Galima gauti elementą, su kuriuo susietas įvykis, per event.target:

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

Trečiasis sprendimas

Galima atsisakyti rodyklinių funkcijos ir pasinaudoti įprasta:

button.addEventListener('click', function() { console.log(this.textContent); });
Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti