⊗jsPmCxInr 433 of 505 menu

JavaScript-da kontekst bilan ishlash asoslari

Faraz qilaylik, bizda func deb nomlangan funksiya bor, uning ichida this ishlatilgan:

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

Ushbu funksiyada this nima ga ishora qiladi? Va biz bilmaymiz. Va JavaScript ham bilmaydi. Va funksiyaning o'zi ham bilmaydi. Ya'ni funksiya yaratilgan paytda this aniq nima ga ishora qilishi, aniq emas. Va bu faqat shu funksiya chaqirilgan paytda aniq bo'ladi.

Faraz qilaylik, bizda ma'lum bir input maydoni bor:

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

Keling, ushbu input maydoniga func funksiyamizni bog'laylik, shundayki u input fokusni yo'qotganida bajarilsin. Endi funksiya bajarilayotgan paytda this bizning input maydonimizga ishora qiladi:

let elem = document.querySelector('#elem'); elem.addEventListener('blur', func); function func() { console.log(this.value); // fokus yo'qolganda 'text' chiqadi }

Lekin bizda bitta input emas, balki bir nechtasi bo'lishi mumkin:

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

Va biz ushbu inputlarning har biriga func funksiyamizni bog'lashimiz mumkin. Bu holda birinchi element uchun this funksiya chaqirilgan paytda unga ishora qiladi, ikkinchisi uchun - unga.

Amaliyotda bu shuni anglatadiki, this funksiya ichida qaysi inputda biz fokusni yo'qotganimizga bog'liq:

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' yoki 'text2' chiqadi }

Umuman olganda, this ning bunday xususiyati juda qulay - biz faqat bitta funksiya yaratamiz va uni istalgan sonli inputga bog'laymiz. Agar this hodisa sodir bo'lgan elementga ishora qilmasa, unda bu amalga oshmagan bo'lar edi - har bir input uchun bir xil kodli o'z funksiyasini yaratishga majbur bo'lar edik!

Oʻzbek
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекTiếng Việt
Biz sayt ishlashi, tahlil qilish va shaxsiylashtirish uchun cookie-fayllardan foydalanamiz. Ma'lumotlarni qayta ishlash Maxfiylik siyosatiga muvofiq amalga oshiriladi.
hammasini qabul qilish sozlash rad etish