JavaScript · Middle · Pytanie 1 z 75
Co wypisze ten kod?
const user = {
name: "Ann",
greet() { return this.name; },
};
const greet = user.greet;
console.log(greet());- ✓Poprawna odpowiedź:
undefined(lub błąd w trybie ścisłym): kontekst zostaje utracony - 2
"Ann": metoda pamięta obiekt, w którym została zadeklarowana - 3
"greet":thiswskazuje na samą funkcję
Wyjaśnienie
this zależy od sposobu wywołania funkcji, a nie od miejsca deklaracji. greet() jest wywoływana bez obiektu przed kropką, więc this to undefined w trybie ścisłym (obiekt globalny w trybie nieścisłym). Naprawia to user.greet.bind(user) lub wywołanie user.greet().