Avatar ·

Wie funktioniert das Schlüsselwort this in JavaScript und wann sollte man es verwenden?

Hallo zusammen! Ich bin neu in JavaScript und verwechsle ständig das Schlüsselwort `this`. Ich habe die Dokumentation gelesen, aber sie scheint zu kompliziert. Ich habe diesen Code:\n\n```javascript\nconst user = {\n name: 'Anna',\n greet: function() {\n console.log('Hallo, ' + this.name);\n }\n};\n\nconst greetFunc = user.greet;\nuser.greet(); // Gibt "Hallo, Anna" aus — funktioniert!\ngreetFunc(); // Gibt "Hallo, undefined" aus — warum?\n```\n\nWenn ich `user.greet()` aufrufe, funktioniert alles. Aber wenn ich die Methode in einer Variable speichere und sie aufrufe, wird `this.name` zu `undefined`. Warum passiert das? Und noch etwas: Ich habe gehört, dass sich `this` in Arrow-Funktionen und normalen Funktionen unterschiedlich verhält. Wie kann ich verstehen, worauf `this` in meinem Code verweist? Wann sollte ich überhaupt `this` verwenden und wann ist es besser, Objekte zu übergeben?