Methode bind

Die Methode bind bindet einen Kontext an eine Funktion. Als ersten Parameter sollte der Kontext übergeben werden, und als folgende Parameter - die Parameter der Funktion. Die Methode gibt eine neue Funktion zurück, in der this gleich dem übergebenen Kontext ist.

Syntax

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

Beispiel

Nehmen wir an, wir haben ein Input-Feld:

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

Nehmen wir an, der Verweis auf dieses Input-Feld ist in der Variable elem gespeichert:

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

Nehmen wir an, wir haben auch die folgende Funktion func:

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

Lassen Sie uns mit bind eine neue Funktion erstellen, die eine Kopie der Funktion func sein wird, aber this darin wird immer gleich elem sein:

javascriptlet newFunc = func.bind(elem);

Jetzt befindet sich in der Variable newFunc eine Funktion. Lassen Sie uns sie aufrufen, indem wir den ersten Parameter '1' und den zweiten '2' übergeben:

javascriptnewFunc('1', '2');

Fassen wir alles zusammen:

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

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

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

Beispiel

Es ist nicht notwendig, das Ergebnis der Arbeit von bind in einer neuen Funktion newFunc zu speichern. Man kann einfach func überschreiben:

javascriptlet func = func.bind(elem);

Siehe auch

  • die Methode call,
    die eine Funktion mit Kontext aufruft
  • die Methode apply,
    die eine Funktion mit Kontext aufruft