De bind Methode

De methode bind bindt context aan een functie. Als eerste parameter moet de context worden doorgegeven, en de volgende parameters zijn de parameters van de functie. De methode retourneert een nieuwe functie, waarin this gelijk zal zijn aan de doorgegeven context.

Syntaxis

javascriptfunctie.bind(context, parameter1, parameter2...);

Voorbeeld

Stel we hebben een input:

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

Stel dat de verwijzing naar deze input is opgeslagen in de variabele elem:

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

Stel we hebben ook de volgende functie func:

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

Laten we met bind een nieuwe functie maken, die een kopie is van functie func, maar waarbij this erin altijd gelijk zal zijn aan elem:

javascriptlet newFunc = func.bind(elem);

Nu ligt er een functie in de variabele newFunc. Laten we haar aanroepen, waarbij we de eerste parameter '1' doorgeven, en de tweede '2':

javascriptnewFunc('1', '2');

Laten we alles samenvoegen:

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

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

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

Voorbeeld

Het is niet verplicht om het resultaat van bind op te slaan in een nieuwe functie newFunc, je kunt simpelweg func overschrijven:

javascriptfunc = func.bind(elem);

Zie ook

  • de methode call,
    die een functie met context aanroept
  • de methode apply,
    die een functie met context aanroept