JavaScript · Middle · Frage 1 von 75
Was gibt dieser Code aus?
const user = {
name: "Ann",
greet() { return this.name; },
};
const greet = user.greet;
console.log(greet());- 1
"Ann": eine Methode merkt sich das Objekt, in dem sie deklariert wurde - 2
"greet":thiszeigt auf die Funktion selbst - 3
undefined(oder ein Fehler im Strict Mode): der Kontext geht verloren
Antwort zeigen
Richtige Antwort: undefined (oder ein Fehler im Strict Mode): der Kontext geht verloren
Erklärung
this hängt davon ab, wie eine Funktion aufgerufen wird, nicht wo sie deklariert ist. greet() wird ohne Objekt vor dem Punkt aufgerufen, also ist this im Strict Mode undefined (im Sloppy Mode das globale Objekt). Abhilfe schafft user.greet.bind(user) oder der Aufruf user.greet().