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);