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

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

Eksempel

La oss si at vi har et input-felt:

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

La referansen til dette input-feltet være lagret i variabelen elem:

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

La oss også si at vi har følgende funksjon func:

javascriptfunction 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:

javascriptlet 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:

javascriptnewFunc('1', '2');

La oss sette alt sammen:

javascriptlet 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:

javascriptfunc = func.bind(elem);

Se også

  • metoden call,
    som kaller en funksjon med en kontekst
  • metoden apply,
    som kaller en funksjon med en kontekst