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