⊗jsPmCxInr 433 of 505 menu

Misingi ya Kufanya Kazi na Context katika JavaScript

Hebu tuwe na baadhi ya funkta func, ndani yake inatumia this:

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

this katika funkta hii inaelekeza wapi? Na hatujui. Na JavaScript haijui. Na funkta yenyewe haijui. Yaani wakati wa kuunda funkta hiyo, this inaelekeza wapi, haijabainika. Na itabainika tu wakati funkta hiyo itakapoitwa.

Hebu tuwe na kitufe cha kuingiza:

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

Weka funkta yetu func kwenye kitufe hiki ili ifanyike wakati kitufe kinapopoteza umakini. Sasa wakati wa kufanya kazi this itaelekeza kwenye kitufe chetu:

let elem = document.querySelector('#elem'); elem.addEventListener('blur', func); function func() { console.log(this.value); // wakati wa kupoteza umakini itaonyesha 'text' }

Lakini inaweza kuwa hatuna kitufe kimoja tu, bali zaidi ya moja:

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

Na kwa kila kitufe kati ya hizi tunaweza kuweka funkta yetu func. Katika kesi hii kwa kipengele cha kwanza this wakati wa kuwaita funkta itaelekeza kwake, na kwa cha pili - kwake.

Kwa vitendo hii inamaanisha kuwa this ndani ya funkta inategemea ni kitufe gani tumepoteza umakini:

let elem1 = document.querySelector('#elem1'); elem1.addEventListener('blur', func); let elem2 = document.querySelector('#elem2'); elem2.addEventListener('blur', func); function func() { console.log(this.value); // itaonyesha ama 'text1', ama 'text2' }

Kwa ujumla, huu umbo la this unaofaa sana - tunaunda funkta moja tu na kuiweka kwa idadi yoyote ya vitufe. Kama this isingeelekeza kwenye kipengele, ambapo tukio limetokea, basi hatingeweza kufanikiwa - tungelazimika kwa kila kitufe kuunda funkta yake mwenyewe na msimbo ule ule!

Kiswahili
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Tunatumia kuki kwa ajili ya uendeshaji wa tovuti, uchambuzi na ubinafsishaji. Usindikaji wa data unafanyika kulingana na Sera ya Faragha.
kubali yote sanidi kataa