Bind metodas

Metodas bind leidžia pririšti kontekstą prie funkcijos. Kaip pirmą parametrą reikia perduoti kontekstą, o tolesniais parametrais - funkcijos parametrus. Metodas grąžina naują funkciją, kurios viduje this bus lygus perduotam kontekstui.

Sintaksė

javascriptfunkcija.bind(kontekstas, parametras1, parametras2...);

Pavyzdys

Tarkime, kad turime įvesties lauką:

html<input id="elem" value="text">

Tarkime, kad nuoroda į šį įvesties lauką yra įrašyta į kintamąjį elem:

javascriptlet elem = document.querySelector('#elem');

Tarkime, kad taip pat turime šią funkciją func:

javascriptfunction func(param1, param2) {
  console.log(this.value + param1 + param2);
}

Naudodami bind sukurkime naują funkciją, kuri bus funkcijos func kopija, bet this joje visada bus lygus elem:

javascriptlet newFunc = func.bind(elem);

Dabar kintamajame newFunc yra funkcija. Iškvieskime ją, perduodant į pirmą parametrą '1', o į antrą '2':

javascriptnewFunc('1', '2');

Sujungkime viską kartu:

javascriptlet elem = document.getElementById('elem');

function func(param1, param2) {
  console.log(this.value + param1 + param2);
}

let newFunc = func.bind(elem);
newFunc('1', '2'); // išvests 'text12'

Pavyzdys

Nebūtinai reikia įrašyti bind rezultatą į naują funkciją newFunc, galima tiesiog perrašyti func:

javascriptlet func = func.bind(elem);

Taip pat žiūrėkite

  • metodas call,
    kuris iškviečia funkciją su kontekstu
  • metodas apply,
    kuris iškviečia funkciją su kontekstu