Metoda bind

Metoda bind omogoča vezavo konteksta na funkcijo. Kot prvi parameter je treba posredovati kontekst, kot sledeče parametre pa parametre funkcije. Metoda vrne novo funkcijo, znotraj katere bo this enak posredovanemu kontekstu.

Sintaksa

javascriptfunkcija.bind(kontekst, parameter1, parameter2...);

Primer

Recimo, da imamo vnosno polje:

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

Recimo, da je povezava na to vnosno polje zapisana v spremenljivko elem:

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

Recimo, da imamo tudi naslednjo funkcijo func:

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

Z uporabo bind naredimo novo funkcijo, ki bo kopija funkcije func, vendar bo this v njej vedno enak elem:

javascriptlet newFunc = func.bind(elem);

V spremenljivki newFunc se nahaja funkcija. Pokličimo jo in posredujmo v prvi parameter '1', v drugi pa '2':

javascriptnewFunc('1', '2');

Povežimo vse skupaj:

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

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

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

Primer

Ni nujno, da rezultat delovanja bind zapišemo v novo funkcijo newFunc, lahko preprosto prepišemo func:

javascriptlet func = func.bind(elem);

Glejte tudi

  • metoda call,
    ki pokliče funkcijo s kontekstom
  • metoda apply,
    ki pokliče funkcijo s kontekstom