Объекти this дар JavaScript
Акнун мо бо объекти махсус
this кор хоҳем кард, ки дар функсия-обработчики
воқеа дастрас аст. Ин объект ба элементи ишора мекунад,
ки дар он воқеа рӯй додааст.
Объекти this қулай аст, вақте ки элемент,
ки дар он воқеа рӯй додааст, ва элементи, ки бо
он амалҳо дар натиҷаи воқеа иҷро карда мешавад,
- ин як элемент аст.
Масалан, агар мо инпут дошта бошем, метавонем ба он обработчики талаффузи фокусиро меъморӣ кунем ва ба рух додани ин воқеа чизе бо матни инпут анҷом диҳем. Биёед чизҳои зикршударо анҷом диҳем. Бигзор инпут ба мо дода шудааст:
<input id="elem" value="матн">
Биёед истиноди ба онро дар тағирёбанда
elem гирем:
let elem = document.querySelector('#elem');
Функсия-обработчики воқеаро
blur ба он меъморӣ кунем:
elem.addEventListener('blur', func);
Дар дохили ин функсия func объекти
this дастрас хоҳад буд, ки ба инпути мо ишора мекунад:
function func() {
console.log(this); // истинод ба элементи моро дар бар мегирад
}
Мундариҷаи атрибути value-ро
инпути мо чоп кунем:
function func() {
console.log(this.value); // мундариҷаи атрибутро чоп мекунем
}
Хуб, акнун ба инпут як матн нависем:
function func() {
this.value = '!!!';
}
Метавонад функсияи бе номро истифода бурд:
elem.addEventListener('blur', function() {
this.value = '!!!';
});
Инпут дода шудааст. Ба даст овардани фокуси ин инпут
рақами 1 ба он нависед, ва ба талаффузи
фокуси - рақами 2. Барои муроҷиат ба
инпут дар дохили функсия-обработчик объекти
this-ро истифода баред.
Тугма дода шудааст, ки арзиши он рақами
1 аст. Чунон кунед, ки ба клик кардан ба
ин тугма арзиши он ҳар дафъа як воҳид зиёд шавад.