13 of 17 menu

JavaScriptda o'q funktsiyasi bilan bog'langan this xatosi

So'nggi paytlarda hamma joyda oddiy funktsiyalar o'rniga o'q funktsiyalarini qo'llash modaga aylandi. Biroq, bu funktsiyalar hiyla-nayrangga ega - ular this ni saqlamaydi. Keling, buning sabab bo'lishi mumkin bo'lgan muammoni ko'rib chiqaylik.

Faraz qilaylik, bizda tugma bor:

<button>matn</button>

Ushbu tugmaga havolani o'zgaruvchiga olaylik:

let button = document.querySelector('button');

Keling, tugmaga o'q funktsiyasidan foydalanib, hodisa qayta ishlovchisini qo'shamiz:

button.addEventListener('click', () => { console.log(this.textContent); });

Aynan shu yerda bizni kutilmagan sovg'ana kutadi: this o'q funktsiyasida hodisa yuz bergan elementga tegishli bo'lmaydi.

Keling, bu bilan nima qilish mumkinligini ko'rib chiqaylik.

Birinchi yechim

this dan foydalanishdan voz kechish mumkin va hodisa bog'langan o'zgaruvchidan foydalanish mumkin:

button.addEventListener('click', () => { console.log(button.textContent); });

Ikkinchi yechim

Hodisa bog'langan elementni event.target orqali olish mumkin:

button.addEventListener('click', (event) => { console.log(event.target.textContent); });

Uchinchi yechim

O'q funktsiyasidan voz kechish mumkin va oddiy funktsiyadan foydalanish mumkin:

button.addEventListener('click', function() { console.log(this.textContent); });
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