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
funktion.bind(kontext, parameter1, parameter2...);
Beispiel
Nehmen wir an, wir haben ein Input-Feld:
<input id="elem" value="text">
Nehmen wir an, der Verweis auf dieses Input-Feld ist in der Variable
elem gespeichert:
let elem = document.querySelector('#elem');
Nehmen wir an, wir haben auch die folgende Funktion
func:
function 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:
let 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:
newFunc('1', '2');
Fassen wir alles zusammen:
let 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:
let func = func.bind(elem);