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
javascriptfunktsiya.bind(kontekst, parametr1, parametr2...);
Misol
Faraz qilaylik, bizda kirish maydoni (input) mavjud:
html<input id="elem" value="text">
Faraz qilaylik, ushbu kirish maydoniga havola
elem o‘zgaruvchisiga yozilgan:
javascriptlet elem = document.querySelector('#elem');
Faraz qilaylik, bizda quyidagi func funktsiyasi ham mavjud:
javascriptfunction 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:
javascriptlet newFunc = func.bind(elem);
Endi newFunc o‘zgaruvchisida funktsiya yotadi.
Keling uni chaqiramiz, birinchi parametr sifatida
'1', ikkinchi parametr sifatida '2' uzatamiz:
javascriptnewFunc('1', '2');
Keling hammasini birlashtiramiz:
javascriptlet 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:
javascriptfunc = func.bind(elem);