Metoda bind
Metoda bind pozwala przypisać kontekst do funkcji.
Jako pierwszy parametr należy przekazać
kontekst, a kolejnymi parametrami - parametry
funkcji. Metoda zwraca nową funkcję,
w której this będzie równe przekazanemu
kontekstowi.
Składnia
funkcja.bind(kontekst, parametr1, parametr2...);
Przykład
Załóżmy, że mamy input:
<input id="elem" value="text">
Załóżmy, że referencja do tego inputa jest zapisana w zmiennej
elem:
let elem = document.querySelector('#elem');
Załóżmy, że mamy również następującą funkcję
func:
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
Użyjmy bind, aby utworzyć nową
funkcję, która będzie kopią funkcji func,
ale this w niej zawsze będzie równe elem:
let newFunc = func.bind(elem);
Teraz w zmiennej newFunc znajduje się
funkcja. Wywołajmy ją, przekazując w pierwszym
parametrze '1', a w drugim '2':
newFunc('1', '2');
Zbierzmy wszystko razem:
let elem = document.getElementById('elem');
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
let newFunc = func.bind(elem);
newFunc('1', '2'); // wypisze 'text12'
Przykład
Niekoniecznie trzeba zapisywać wynik działania
bind w nowej funkcji newFunc,
można po prostu nadpisać func:
let func = func.bind(elem);