Avatar ·

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