⊗jsPmCxInr 433 of 505 menu

JavaScript-те контекстпен жұмыс істеудің негіздері

Бізде қандай да бір func функциясы бар делік, оның ішінде this қолданылады:

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

Бұл функцияда this неге сілтеме жасайды? Біз білмейміз. Және JavaScript те білмейді. Және функцияның өзі білмейді. Яғни, функция құрылған кезде this-тің нақты неге сілтеме жасайтыны анықталмаған. Бұл тек осы функция шақырылған кезде ғана анықталады.

Бізде қандай да бір input бар делік:

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

Осы input-қа біздің func функциямызды осылай байланыстырайық, ол input фокусын жоғалтқан кезде орындалады. Енді функция орындалған кезде this біздің input-қа сілтеме жасайды:

let elem = document.querySelector('#elem'); elem.addEventListener('blur', func); function func() { console.log(this.value); // фокус жоғалған кезде 'text' шығарады }

Бірақ бізде бір input емес, бірнеше болуы мүмкін:

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

Және осы input-тардың әрқайсысына біз func функциямызды байланыстыра аламыз. Бұл жағдайда бірінші элемент үшін this функция шақырылған кезде оған сілтеме жасайды, ал екіншісі үшін - оған.

Практикада бұл this функция ішінде қай input-та біз фокусымызды жоғалтқанымызға байланысты болады дегенді білдіреді:

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-тің мұндай ерекшелігі өте ыңғайлы - біз тек бір функция жасаймыз және оны кез келген санындағы input-қа байланыстырамыз. Егер this оқиға болған элементке сілтеме жасамаса, онда бізге бұл мүмкін болмас еді - әр input үшін бірдей кодпен өз функциясын жасауға турар еді!

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