Back to blog
Apr 2023·2 min read

JavaScript - THIS Keyword

#allgemein

In der Welt der Webentwicklung ist Javascript eine der am häufigsten verwendeten Programmiersprachen. Trotz seiner Beliebtheit gibt es jedoch einige schwierige Konzepte, mit denen Entwickler kämpfen können. Eines dieser Konzepte ist das "this"-Schlüsselwort.

Das "this"-Schlüsselwort in Javascript kann sehr verwirrend sein, insbesondere für Entwickler, die aus anderen Programmiersprachen kommen. Im Grunde genommen bezieht sich "this" auf den Kontext, in dem eine Funktion aufgerufen wird. Es kann sich jedoch je nach Kontext ändern und zu unerwarteten Ergebnissen führen.

Um es einfacher zu machen, lassen Sie uns ein Beispiel betrachten:

const person = { firstName: "John", lastName: "Doe", fullName: function() { console.log(this.firstName + " " + this.lastName); } }

person.fullName(); // Output: John Doe

In diesem Beispiel bezieht sich das "this"-Schlüsselwort auf das "person"-Objekt, da die "fullName"-Funktion im Kontext dieses Objekts aufgerufen wird.

Aber was passiert, wenn wir diese Funktion in einem anderen Kontext aufrufen? Betrachten wir dazu das folgende Beispiel:

const person = { firstName: "John", lastName: "Doe", fullName: function() { console.log(this.firstName + " " + this.lastName); } }

const printFullName = person.fullName; printFullName(); // Output: undefined undefined

In diesem Beispiel wird die "fullName"-Funktion in einem anderen Kontext aufgerufen, nämlich im globalen Kontext. Da es im globalen Kontext keine "firstName" oder "lastName"-Variablen gibt, gibt die Funktion "undefined" zurück.

Um dieses Problem zu lösen, können wir das "this"-Schlüsselwort explizit auf das "person"-Objekt setzen, indem wir die "bind"-Methode verwenden:

const person = { firstName: "John", lastName: "Doe", fullName: function() { console.log(this.firstName + " " + this.lastName); } }

const printFullName = person.fullName.bind(person); printFullName(); // Output: John Doe

Hier verwenden wir die "bind"-Methode, um das "this"-Schlüsselwort auf das "person"-Objekt zu setzen, unabhängig davon, wo die Funktion aufgerufen wird.

Insgesamt kann das "this"-Schlüsselwort in Javascript sehr verwirrend sein, aber mit ein wenig Übung und Verständnis der Konzepte dahinter können Entwickler dieses Problem leicht lösen. Indem man die "bind"-Methode und andere Techniken verwendet, können Entwickler sicherstellen, dass ihre Funktionen immer im richtigen Kontext aufgerufen werden.

NewerReact Native - What?OlderDependency Injection