Metoden bind
Metoden bind bruges til at binde en kontekst til en funktion.
Som første parameter skal konteksten sendes,
og de efterfølgende parametre er funktionens parametre.
Metoden returnerer en ny funktion,
hvor this vil være lig med den overførte kontekst.
Syntaks
funktion.bind(kontekst, parameter1, parameter2...);
Eksempel
Lad os sige, at vi har et inputfelt:
<input id="elem" value="text">
Lad referencen til dette inputfelt være gemt i variablen
elem:
let elem = document.querySelector('#elem');
Lad os også sige, at vi har følgende funktion
func:
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
Lad os med bind lave en ny
funktion, som vil være en kopi af funktionen func,
men hvor this altid vil være lig med elem:
let newFunc = func.bind(elem);
Nu ligger der en funktion i variablen newFunc.
Lad os kalde den og sende '1' som den første
parameter og '2' som den anden:
newFunc('1', '2');
Lad os sætte det hele sammen:
let elem = document.getElementById('elem');
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
let newFunc = func.bind(elem);
newFunc('1', '2'); // udskriver 'text12'
Eksempel
Det er ikke nødvendigt at gemme resultatet af
bind i en ny funktion newFunc,
man kan bare overskrive func:
let func = func.bind(elem);