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
funkcija.bind(kontekst, parameter1, parameter2...);
Primer
Recimo, da imamo vnosno polje:
<input id="elem" value="text">
Recimo, da je povezava na to vnosno polje zapisana v spremenljivko
elem:
let elem = document.querySelector('#elem');
Recimo, da imamo tudi naslednjo funkcijo
func:
function 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:
let newFunc = func.bind(elem);
V spremenljivki newFunc se nahaja
funkcija. Pokličimo jo in posredujmo v prvi
parameter '1', v drugi pa '2':
newFunc('1', '2');
Povežimo vse skupaj:
let 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:
let func = func.bind(elem);