Metod bind
Metod bind funktsiyaga kontekstni bog‘lash uchun ishlatiladi.
Birinchi parametr sifatida kontekst,
keyingi parametrlar sifatida esa funktsiya parametrlari uzatiladi.
Metod yangi funktsiyani qaytaradi,
uning ichida this uzatilgan kontekstga teng bo‘ladi.
Sintaksis
funktsiya.bind(kontekst, parametr1, parametr2...);
Misol
Faraz qilaylik, bizda kirish maydoni (input) mavjud:
<input id="elem" value="text">
Faraz qilaylik, ushbu kirish maydoniga havola
elem o‘zgaruvchisiga yozilgan:
let elem = document.querySelector('#elem');
Faraz qilaylik, bizda quyidagi func funktsiyasi ham mavjud:
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
Keling, bind yordamida func funktsiyasining nusxasi bo‘lgan,
lekin undagi this har doim elem ga teng bo‘ladigan yangi
funktsiya yarataylik:
let newFunc = func.bind(elem);
Endi newFunc o‘zgaruvchisida funktsiya yotadi.
Keling uni chaqiramiz, birinchi parametr sifatida
'1', ikkinchi parametr sifatida '2' uzatamiz:
newFunc('1', '2');
Keling hammasini birlashtiramiz:
let elem = document.getElementById('elem');
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
let newFunc = func.bind(elem);
newFunc('1', '2'); // 'text12' chiqadi
Misol
bind natijasini yangi newFunc funktsiyasiga yozish shart emas,
shunchaki func ni qayta yozish mumkin:
func = func.bind(elem);