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);

Shuningdek qarang

  • metod call,
    u funktsiyani kontekst bilan chaqiradi
  • metod apply,
    u funktsiyani kontekst bilan chaqiradi