Funkcja bind została dodana w ES5, wskazuje wprost kontekst this wywoływanej funkcji. Zobaczmy przykład:
let obj = {
name: "Ola",
// this wskazuje na obiekt obj z którego
// pobrana jest wartość name
print: function(surname, city) {
console.log( this.name, surname, city );
}
};
obj.print("Kot", "Wawa"); // Ola Kot Wawa
// call pozwala na zmianę kontekstu w jakim wywoływana jest funkcja
let user = { name: "Rafał" };
let rInfo = obj.print.bind(user, "Musk", "Gdańsk");
rInfo(); // Rafał Musk Gdańsk - na stałe przypisane this i argumenty
Dzięki bind na stałe możemy przypisać this wraz z argumentami co może znacząco ułatwić nam prace w JavaScript.
KW