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
funktion.bind(kontext, parameter1, parameter2...);
Exempel
Låt oss säga att vi har ett inputfält:
<input id="elem" value="text">
Låt länken till detta inputfält vara sparad i variabeln
elem:
let elem = document.querySelector('#elem');
Låt oss också säga att vi har följande funktion
func:
function 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:
let 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':
newFunc('1', '2');
Låt oss sammanfatta allt:
let 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:
let func = func.bind(elem);