Metóda bind
Metóda bind slúži na naviazanie kontextu na funkciu.
Ako prvý parameter sa odovzdáva
kontext a ako nasledujúce parametre - parametre
funkcie. Metóda vracia novú funkciu,
v ktorej bude this rovné odovzdanému
kontextu.
Syntax
funkcia.bind(kontext, parameter1, parameter2...);
Príklad
Majme vstupné pole:
<input id="elem" value="text">
Nech odkaz na toto vstupné pole je uložený v premennej
elem:
let elem = document.querySelector('#elem');
Nech máme aj nasledujúcu funkciu
func:
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
Pomocou bind vytvorme novú
funkciu, ktorá bude kópiou funkcie func,
ale this v nej bude vždy rovné elem:
let newFunc = func.bind(elem);
V premennej newFunc je teraz
funkcia. Zavolajme ju, pričom do prvého
parametra odovzdajme '1' a do druhého '2':
newFunc('1', '2');
Zhrňme si to všetko dokopy:
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'
Príklad
Výsledok práce
bind nemusí byť uložený do novej funkcie newFunc,
je možné jednoducho prepísať func:
let func = func.bind(elem);