Metod bind
Metod bind veže kontekst za funkciju.
Kao prvi parametar treba proslediti
kontekst, a sledećim parametrima - parametre
funkcije. Metod vraća novu funkciju,
unutar koje će this biti jednak prosleđenom
kontekstu.
Sintaksa
funkcija.bind(kontekst, parametar1, parametar2...);
Primer
Neka imamo input:
<input id="elem" value="text">
Neka je referenca na ovaj input zapisana u promenljivu
elem:
let elem = document.querySelector('#elem');
Neka imamo i sledeću funkciju
func:
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
Hajde da pomoću bind napravimo novu
funkciju, koja će biti kopija funkcije func,
ali će this u njoj uvek biti jednak elem:
let newFunc = func.bind(elem);
Sada u promenljivoj newFunc leži
funkcija. Hajde da je pozovemo, prosledivši u prvi
parametar '1', a u drugi '2':
newFunc('1', '2');
Hajde da sve sastavimo:
let elem = document.getElementById('elem');
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
let newFunc = func.bind(elem);
newFunc('1', '2'); // ispisaće 'text12'
Primer
Nije neophodno rezultat rada
bind upisivati u novu funkciju newFunc,
može se jednostavno prepisati func:
let func = func.bind(elem);