JavaScriptda call metodi orqali kontekstni bog‘lash
Shunday qilib, biz this ning aslida qanday ishlashini tahlil qildik.
Keling, endi funktsiya qaysi kontekstda chaqirilishini majburan belgilashga
imkon beruvchi metodlarni ko'rib chiqaylik (ya'ni this nimaga teng ekanligini
majburan aytish).
Biz ko'rib chiradigan birinchi metod
call deb ataladi. Keling, uning ishlashini misolda ko'ramiz.
Bizda input bo'lsin:
<input id="elem" value="text">
Keling, ushbu inputga havola olamiz va
uni elem o'zgaruvchisiga yozamiz:
let elem = document.querySelector('#elem');
Keling, endi func funktsiyasini yarataylik,
uning ichida this.value ni chiqaramiz:
function func() {
console.log(this.value);
}
Hozircha bizning funktsiyamiz this nimaqa murojaat qilayotganini bilmaydi.
Agar biz uni addEventListener orqali bog'lab qo'ysak, unda ha.
Lekin biz buni qilmaymiz. Buning o'rniga biz shunchaki funktsiyamizni chaqiramiz
va unga this elem ga teng bo'lishi kerakligini aytamiz.
Bu shunday qilinadi: func.call(elem).
Ushbu kod oddiy funktsiyani func() deb chaqirishga ekvivalent,
faqat this elem ga teng bo'lgan shart bilan.
Shunday qilib, call metodining sintaksisi: funktsiya.call(ob'ekt).
Keling, hammasini
birlashtiramiz:
let elem = document.querySelector('#elem');
function func() {
console.log(this.value); // inputning value sini chiqaradi
}
func.call(elem);
Funktsiya berilgan:
function func() {
console.log(this.value);
}
Uchta input berilgan:
<input id="elem1" value="text1">
<input id="elem2" value="text2">
<input id="elem3" value="text3">
call metodi va func funktsiyasi yordamida
har bir inputning value sini ekranda chiqaring.