⊗jsPmCxInr 433 of 505 menu

JavaScriptда контекст билан ишлаш асослари

Фарз қилайлик, бизда func номли бирор функция бор, ичида this ишлатилган:

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

Бу функцияда this нимага ишора қилади? Биз билмаймиз. Ва JavaScript ҳам билмайди. Ва функциянинг ўзи ҳам билмайди. Яъни функция яратилган пайтда this аниқ нимага ишора қилаётгани аниқланмаган. Ва бу фақат функция чақирилган пайтдагина аниқланади.

Фарз қилайлик, бизда бирор инпут бор:

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

Бу инпутга бизнинг func функциямизни шундай боглайликки, у инпут фокус йўқотганида бажарилсин. Энди функция бажарилган пайтда this бизнинг инпутимизга ишора қилади:

let elem = document.querySelector('#elem'); elem.addEventListener('blur', func); function func() { console.log(this.value); // фокус йўқотганда 'text' чиқади }

Лекин бизда битта инпут эмас, бир нечта инпут бўлиши мумкин:

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

Ва биз бу инпутларнинг ҳар бирига бизнинг func функциямизни боглашимиз мумкин. Бу ҳолда биринчи элемент учун this функция чақирилган пайтда унга ишора қилади, иккинчиси учун эса - унга.

Амалиётда бу func функцияси ичидаги this қайси инпутда биз фокус йўқотганимизга боглиқ эканлигини билдиради:

let elem1 = document.querySelector('#elem1'); elem1.addEventListener('blur', func); let elem2 = document.querySelector('#elem2'); elem2.addEventListener('blur', func); function func() { console.log(this.value); // 'text1' ёки 'text2' чиқади }

Умуман олганда, thisнинг бу хусусияти жуда қулай - биз фақат битта функция яратамиз ва уни истаган миқдордаги инпутларга боглай оламиз. Агар this вокеа юз берган элементга ишора қилмаса, у ҳолда бундай бўлар эди - биз ҳар бир инпут учун ўзининг бир хил кодли функциясини яратишга мажбур бўлардик!

Ўзбек
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeOʻzbekTiếng Việt
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш