⊗jsPmDmThsA 357 of 505 menu

A this előnye JavaScriptben

A korábbiakból még nem nyilvánvaló a this különleges előnye. Hiszen az eseménykezelő függvényen belül úgyis elérhető lesz az elemünk - hiszen a elem változó globális lesz a func függvényünk számára:

let elem = document.querySelector('#elem'); elem.addEventListener('click', func); function func() { // itt elérhető az elem változó az elemünkkel }

És könnyű belátni, hogy a this tartalma és a elem változó tartalma esetünkben megegyezik:

let elem = document.querySelector('#elem'); elem.addEventListener('click', func); function func() { console.log(elem === this); // true-t ír ki }

Mi is a this különleges előnye? Az mutatkozik meg, amikor több elemünk van, és mindegyikhez ugyanaz a függvény van kötve.

Nézzünk egy példát. Tegyük fel, hogy 3 gombunk van:

<input id="button1" type="submit" value="text1"> <input id="button2" type="submit" value="text2"> <input id="button3" type="submit" value="text3">

Szerezzük meg a hivatkozásokat rájuk változókba:

let button1 = document.querySelector('#button1'); let button2 = document.querySelector('#button2'); let button3 = document.querySelector('#button3');

Kössük ezekhez a gombokhoz ugyanazt a függvényt:

button1.addEventListener('click', func); button2.addEventListener('click', func); button3.addEventListener('click', func);

A függvényen belül pedig írjuk ki a this.value-t:

function func() { console.log(this.value); }

Az eredmény az, hogy három gombunk van. Bármelyik gombra kattintva a func függvény hívódik meg. Eközben minden kattintásnál a this tartalmazni fogja annak a gombnak a hivatkozását, ahol az esemény bekövetkezett.

Vagyis minden kattintás a konzolra írja ki annak a gombnak a value értékét, amelyiken a kattintás történt, de mindezt ugyanaz a func függvény teszi! Ez a this használatának előnye.

Adott 5 bekezdés valamilyen szöveggel. Bármelyik bekezdésre kattintva írj a szöveg végére egy felkiáltójelet.

Adott 3 inputmező, amelyekben valamilyen számok vannak. Bármelyik inputmező fókuszvesztésekor emeld négyzetre a benne lévő számot.

Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás