⊗jsPmCxInr 433 of 505 menu

Bazat e punës me kontekst në JavaScript

Le të themi se kemi një funksion func, brenda të cilit përdoret this:

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

Çfarë tregon this në këtë funksion? Ne nuk e dimë. Dhe JavaScript nuk e di. Dhe vetë funksioni nuk e di. Kjo do të thotë, në momentin e krijimit të funksionit, ajo që this tregon nuk është e përcaktuar. Dhe do të përcaktohet vetëm kur ky funksion të thirret.

Le të themi se kemi një input:

<input id="elem" value="text">

Le ta lidhim këtë input me funksionin tonë func në mënyrë që ai të ekzekutohet kur inputi humb fokusin. Tani, në momentin e ekzekutimit të funksionit this do të tregojë tek inputi ynë:

let elem = document.querySelector('#elem'); elem.addEventListener('blur', func); function func() { console.log(this.value); // kur humbet fokusi do të shfaqet 'text' }

Por mund të kemi jo një input, por disa:

<input id="elem1" value="text1"> <input id="elem2" value="text2">

Dhe secilit prej këtyre inputeve mund t'ia lidhim funksionin tonë func. Në këtë rast, për elementin e parë, this në momentin e thirrjes së funksionit do të tregojë tek ai, dhe për të dytin - tek ai.

Në praktikë, kjo do të thotë se this brenda funksionit varet nga se në cilin prej inputeve kemi humbur fokusin:

let elem1 = document.querySelector('#elem1'); elem1.addEventListener('blur', func); let elem2 = document.querySelector('#elem2'); elem2.addEventListener('blur', func); function func() { console.log(this.value); // do të shfaqë ose 'text1' ose 'text2' }

Në përgjithësi, kjo veçori e this është shumë e përshtatshme - ne krijojmë vetëm një funksion dhe e lidhim atë me çdo numër inputesh. Nëse this nuk do të tregonte tek ai element, ku ndodhi ngjarja, atëherë ne nuk do të kishim mundur ta bënim këtë - do të duhej të krijonim për çdo input funksionin e vet me të njëjtin kod!

Shqip
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ne përdorim cookie për funksionimin e sajtit, analizën dhe personalizimin. Përpunimi i të dhënave bëhet në përputhje me Politikën e Privatësisë.
prano të gjitha konfiguro refuzo