Metoden bind

Metoden bind används för att binda kontext till en funktion. Som första parameter skickas kontexten, och efterföljande parametrar är parametrarna för funktionen. Metoden returnerar en ny funktion, inuti vilken this kommer att vara lika med den överförda kontexten.

Syntax

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

Exempel

Låt oss säga att vi har ett inputfält:

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

Låt länken till detta inputfält vara sparad i variabeln elem:

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

Låt oss också säga att vi har följande funktion func:

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

Låt oss med hjälp av bind skapa en ny funktion som kommer att vara en kopia av funktionen func, men this i den kommer alltid att vara lika med elem:

javascriptlet newFunc = func.bind(elem);

Nu ligger det en funktion i variabeln newFunc. Låt oss anropa den och skicka den första parametern '1', och den andra '2':

javascriptnewFunc('1', '2');

Låt oss sammanfatta allt:

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'

Exempel

Det är inte nödvändigt att spara resultatet av bind i en ny funktion newFunc, man kan helt enkelt skriva över func:

javascriptlet func = func.bind(elem);

Se även

  • metoden call,
    som anropar en funktion med kontext
  • metoden apply,
    som anropar en funktion med kontext