Объекти this дар JavaScript

Акнун мо бо объекти махсус this кор хоҳем кард, ки дар функсия-обработчики воқеа дастрас аст. Ин объект ба элементи ишора мекунад, ки дар он воқеа рӯй додааст.

Объекти this қулай аст, вақте ки элемент, ки дар он воқеа рӯй додааст, ва элементи, ки бо он амалҳо дар натиҷаи воқеа иҷро карда мешавад, - ин як элемент аст.

Масалан, агар мо инпут дошта бошем, метавонем ба он обработчики талаффузи фокусиро меъморӣ кунем ва ба рух додани ин воқеа чизе бо матни инпут анҷом диҳем. Биёед чизҳои зикршударо анҷом диҳем. Бигзор инпут ба мо дода шудааст:

html<input id="elem" value="матн">

Биёед истиноди ба онро дар тағирёбанда elem гирем:

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

Функсия-обработчики воқеаро blur ба он меъморӣ кунем:

javascriptelem.addEventListener('blur', func);

Дар дохили ин функсия func объекти this дастрас хоҳад буд, ки ба инпути мо ишора мекунад:

javascriptfunction func() {
  console.log(this); // истинод ба элементи моро дар бар мегирад
}

Мундариҷаи атрибути value-ро инпути мо чоп кунем:

javascriptfunction func() {
  console.log(this.value); // мундариҷаи атрибутро чоп мекунем
}

Хуб, акнун ба инпут як матн нависем:

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

Метавонад функсияи бе номро истифода бурд:

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

Инпут дода шудааст. Ба даст овардани фокуси ин инпут рақами 1 ба он нависед, ва ба талаффузи фокуси - рақами 2. Барои муроҷиат ба инпут дар дохили функсия-обработчик объекти this-ро истифода баред.

Задание 2

Тугма дода шудааст, ки арзиши он рақами 1 аст. Чунон кунед, ки ба клик кардан ба ин тугма арзиши он ҳар дафъа як воҳид зиёд шавад.