Wie erhalte ich korrekt Zugriff auf `this` innerhalb einer Callback-Funktion in JavaScript?
Hallo zusammen! Ich habe gerade angefangen, JavaScript zu lernen, und bin auf ein Problem gestoßen, das ich einfach nicht lösen kann. Ich habe ein Objekt `user` mit einer Eigenschaft `name` und einer Methode `greet`. Ich möchte, dass die Methode `greet` nach 2 Sekunden eine Begrüßung mit dem Benutzernamen ausgibt. Dafür verwende ich `setTimeout`. Aber wenn ich den Code ausführe, wird statt des Namens `undefined` ausgegeben. Hier ist mein Code:
```javascript
const user = {
name: 'Anna',
greet: function() {
setTimeout(function() {
console.log(`Hallo, ${this.name}!`);
}, 2000);
}
};
user.greet(); // Gibt "Hallo, undefined!" aus
```
Ich verstehe, dass das Problem darin liegt, dass innerhalb der Callback-Funktion in `setTimeout` der Kontext `this` verloren geht. Aber ich verstehe nicht, warum das passiert und wie man es beheben kann. Ich habe versucht, die Dokumentation zu lesen, aber dort
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs