⊗jsPmDmThsA 357 of 505 menu

this-i eelis JavaScriptis

Eelnevast ei ole veel ilmne eriline eelis this. Lõppude lõpuks on sündmustekäsitlaja funktsiooni sees meie element kättesaadav - ju muutuja elem on meie funktsiooni jaoks globaalne func:

let elem = document.querySelector('#elem'); elem.addEventListener('click', func); function func() { // siin on kättesaadav muutuja elem meie elemendiga }

Ja pole raske aru saada, et this sisu ja muutuja elem sisu meie juhul on võrdsed:

let elem = document.querySelector('#elem'); elem.addEventListener('click', func); function func() { console.log(elem === this); // väljastab true }

Mis on siis this eriline eelis? See ilmneb siis, kui meil on mitu elementi, ja igaühega on seotud sama funktsioon.

Vaatame näidet. Olgu meil 3 nuppu:

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

Saame nende viited muutujatesse:

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

Seome nende nuppudega sama funktsiooni:

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

Ja funktsiooni sees väljastame this.value:

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

Tulemuseks on, et meil on kolm nuppu. Iga nupu vajutamine kutsub välja funktsiooni func. Samal ajal iga kliki korral sisaldab this viidet sellele nupule, kus sündmus toimus.

See tähendab, et iga vajutus väljastab konsooli value sellest nupust, mida vajutati, kuid seda teeb üks ja sama funktsioon func! Selline ongi this kasutamise eelis.

On antud 5 lõiku mingite tekstidega. Iga lõigu klikkimisel kirjuta teksti lõppu hüüumärk.

On antud 3 input-välja, kuhu on sisestatud mingid numbrid. Iga input-välja fookuse kaotamisel too seal olev number ruutu.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu