Słowo kluczowe this
Słowo kluczowe this
nie odnosi się do funkcji w której jest używany ani do jej kontekstu. Odnosi się do obiektu, na którym wykonywana jest funkcja i zależy całkowicie od wywołania sposobu funkcji.
Implicit Binding (domyślne wiązanie)
const person = {
name: 'Krzysztof',
powitanie() {
console.log('Hej, na imię mi ' + this.name)
}
}
person.powitanie() // Hej, na imię mi Krzysztof
Explicit Binding (bezpośrednie wiązanie)
Funkcja call
function witaj() { console.log( this.name );}
var osoba = { name: 'Krzyś'};
witaj.call( osoba, arg1, arg2, arg3, ... ); // Krzyś
Funkcja apply
function witaj() { console.log( this.name );}
var osoba = { name: 'Krzyś'};
witaj.apply( osoba, [arg1, arg2, arg3, ... ]); // Krzyś
Funkcja bind (zwiąż)
Funkcja bind tworzy nową funkcję, która wywoła pierwotną funkcję związaną z tym, co zostało przekazane.
function witaj() { console.log( this.name );}
var osoba = { name: 'Krzyś'};
var helloOsoba() = witaj.bind(osoba);
helloOsoba(); // Krzyś