⊗jsPmTmՍԱ 357 of 505 menu

JavaScript-ում this-ի առավելությունը

Նախկինում ասվածից դեռևս ակնհայտ չէ this-ի հատուկ առավելությունը: Չէ՞ որ իրադարձության մշակիչ ֆունկցիայի ներսում մեր տարրը հասանելի կլինի ամեն դեպքում - քանի որ elem փոփոխականը գլոբալ կլինի մեր func ֆունկցիայի համար:

let elem = document.querySelector('#elem'); elem.addEventListener('click', func); function func() { // այստեղ հասանելի է elem փոփոխականը՝ մեր տարրով }

Եվ, դժվար չէ գուշակել, որ this-ի պարունակությունը և elem փոփոխականի պարունակությունը մեր դեպքում հավասար են:

let elem = document.querySelector('#elem'); elem.addEventListener('click', func); function func() { console.log(elem === this); // կարտածի true }

Ո՞րն է this-ի հատուկ առավելությունը: Այն դրսևորվում է, երբ մենք ունենք մի քանի տարրեր, և յուրաքանչյուրին կապված է միևնույն ֆունկցիան:

Օրինակով նայենք: Ենթադրենք ունենք 3 կոճակներ:

<input id="button1" type="submit" value="text1"> <input id="button2" type="submit" value="text2"> <input id="button3" type="submit" value="text3">

Ստացենք դրանց հղումները փոփոխականներում:

let button1 = document.querySelector('#button1'); let button2 = document.querySelector('#button2'); let button3 = document.querySelector('#button3');

Կկապենք այս կոճակներին միևնույն ֆունկցիան:

button1.addEventListener('click', func); button2.addEventListener('click', func); button3.addEventListener('click', func);

Իսկ ֆունկցիայի ներսում կարտածենք this.value:

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

Ստացվում է, որ ունենք երեք կոճակ: Յուրաքանչյուր կոճակի վրա սեղմումը կհանգեցնի func ֆունկցիայի կանչին: Այդ դեպքում ամեն սեղմումի ժամանակ this-ը կպարունակի հղում դեպի այն կոճակը, որում տեղի է ունեցել իրադարձությունը:

Այսինքն՝ ամեն սեղմումը կոնսոլում կարտածի value այն կոճակի, որի վրա տեղի է ունեցել սեղմումը, բայց դա կանի միևնույն func ֆունկցիան: Ահա թե որտեղ է this-ի օգտագործման առավելությունը:

Տրված են 5 պարբերություններ ինչ-որ տեքստերով: Ցանկացած պարբերության վրա սեղմելիս ավելացրեք նրա տեքստի վերջում բացականչական նշան:

Տրված են 3 input-ներ, որոնցում գրված են ինչ-որ թվեր: Ցանկացած input-ի ֆոկուսը կորցնելու դեպքում բարձրացրեք դրանում գրված թիվը քառակուսի:

Հայերեն
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել