Metoden bind

Metoden bind bruges til at binde en kontekst til en funktion. Som første parameter skal konteksten sendes, og de efterfølgende parametre er funktionens parametre. Metoden returnerer en ny funktion, hvor this vil være lig med den overførte kontekst.

Syntaks

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

Eksempel

Lad os sige, at vi har et inputfelt:

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

Lad referencen til dette inputfelt være gemt i variablen elem:

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

Lad os også sige, at vi har følgende funktion func:

javascriptfunction func(param1, param2) {
  console.log(this.value + param1 + param2);
}

Lad os med bind lave en ny funktion, som vil være en kopi af funktionen func, men hvor this altid vil være lig med elem:

javascriptlet newFunc = func.bind(elem);

Nu ligger der en funktion i variablen newFunc. Lad os kalde den og sende '1' som den første parameter og '2' som den anden:

javascriptnewFunc('1', '2');

Lad os sætte det hele sammen:

javascriptlet elem = document.getElementById('elem');

function func(param1, param2) {
  console.log(this.value + param1 + param2);
}

let newFunc = func.bind(elem);
newFunc('1', '2'); // udskriver 'text12'

Eksempel

Det er ikke nødvendigt at gemme resultatet af bind i en ny funktion newFunc, man kan bare overskrive func:

javascriptlet func = func.bind(elem);

Se også

  • metoden call,
    som kalder en funktion med en kontekst
  • metoden apply,
    som kalder en funktion med en kontekst