JavaScript-ի this օբյեկտը

Այժմ մենք կաշխատենք this հատուկ օբյեկտի հետ, որ հասանելի է իրադարձության մշակիչ ֆունկցիայում։ Այս օբյեկտը ցույց է տալիս տարրը, որում տեղի է ունեցել իրադարձությունը։

this օբյեկտը հարմար է, երբ այն տարրը, որում տեղի է ունեցել իրադարձությունը, և այն տարրը, որի հետ գործողություններ են կատարվում իրադարձության արդյունքում, նույն տարրն են։

Օրինակ, եթե ունենք input, մենք կարող ենք դրան կապել ֆոկուսը կորցնելու մշակիչ և այդ իրադարձության առաջացման դեպքում ինչ-որ բան անել input-ի տեքստի հետ։ Եկեք կատարենք նկարագրվածը։ Ենթադրենք ունենք input։

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

Եկեք ստանանք հղում դրան elem փոփոխականում։

javascriptlet elem = document.querySelector('#elem');

Կապենք դրան ֆունկցիա-մշակիչ, որ կպատասխանի blur իրադարձությանը։

javascriptelem.addEventListener('blur', func);

Այս func ֆունկցիայի ներսում հասանելի կլինի this օբյեկտը, որ ցույց է տալիս մեր input-ին։

javascriptfunction func() {
  console.log(this); // պարունակում է հղում դեպի մեր տարրը
}

Եկեք արտածենք մեր input-ի value ատրիբուտի պարունակությունը։

javascriptfunction func() {
  console.log(this.value); // կարտածի ատրիբուտի պարունակությունը
}

Իսկ այժմ input-ի մեջ գրենք ինչ-որ տեքստ։

javascriptfunction func() {
  this.value = '!!!';
}

Կարելի է օգտագործել նաև անանուն ֆունկցիա։

javascriptelem.addEventListener('blur', function() {
  this.value = '!!!';
});
Задание 1

Տրված է input։ Այս input-ի կողմից ֆոկուսը ստանալու դեպքում գրեք դրա մեջ 1 թիվը, իսկ ֆոկուսը կորցնելու դեպքում՝ 2 թիվը։ Input-ին դիմելու համար ֆունկցիա-մշակիչի ներսում օգտագործեք this օբյեկտը։

Задание 2

Տրված է կոճակ, որի արժեքը 1 թիվն է։ Կատարեք այնպես, որ այս կոճակի վրա կտտացնելու դեպքում նրա արժեքը ամեն անգամ մեկով աճի։