Metoden bind
Metoden bind brukes for å tilknytte en kontekst til en funksjon.
Som første parameter skal du sende inn
konteksten, og de påfølgende parameterne er parameterne til
funksjonen. Metoden returnerer en ny funksjon,
innenfor hvilken this vil være lik den overførte
konteksten.
Syntaks
funksjon.bind(kontekst, parameter1, parameter2...);
Eksempel
La oss si at vi har et input-felt:
<input id="elem" value="text">
La referansen til dette input-feltet være lagret i variabelen
elem:
let elem = document.querySelector('#elem');
La oss også si at vi har følgende funksjon
func:
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
La oss ved hjelp av bind lage en ny
funksjon som vil være en kopi av funksjonen func,
men hvor this alltid vil være lik elem:
let newFunc = func.bind(elem);
Nå ligger det en funksjon i variabelen newFunc.
La oss kalle den, og sende inn '1' som første
parameter, og '2' som den andre:
newFunc('1', '2');
La oss sette alt sammen:
let elem = document.getElementById('elem');
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
let newFunc = func.bind(elem);
newFunc('1', '2'); // skriver ut 'text12'
Eksempel
Det er ikke nødvendig å lagre resultatet av
bind i en ny funksjon newFunc,
du kan ganske enkelt overskrive func:
func = func.bind(elem);