Metoda bind
Metoda bind slouží k navázání kontextu na funkci.
Jako první parametr se předává
kontext a následujícími parametry jsou parametry
funkce. Metoda vrací novou funkci,
uvnitř které bude this rovno předanému
kontextu.
Syntaxe
funkce.bind(kontext, parametr1, parametr2...);
Příklad
Předpokládejme, že máme vstupní pole:
<input id="elem" value="text">
Předpokládejme, že odkaz na toto vstupní pole je uložen v proměnné
elem:
let elem = document.querySelector('#elem');
Předpokládejme také, že máme následující funkci
func:
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
Pomocí bind vytvoříme novou
funkci, která bude kopií funkce func,
ale this v ní bude vždy rovno elem:
let newFunc = func.bind(elem);
Nyní je v proměnné newFunc uložena
funkce. Zavolejme ji a předejme jí první
parametr '1' a druhý '2':
newFunc('1', '2');
Shrňme vše dohromady:
let elem = document.getElementById('elem');
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
let newFunc = func.bind(elem);
newFunc('1', '2'); // vypíše 'text12'
Příklad
Výsledek práce bind nemusí být nutně uložen do nové funkce newFunc,
lze jednoduše přepsat func:
let func = func.bind(elem);