Zruck zum Blog, du Zniachtl
Apr. 2023·1 Min. zum LesnVo da KI übersetzt

JavaScript this Keyword

#allgemein

In da Wöt vo da Webentwicklung is Javascript oane vo de am häufigsten valwendeten Programmiersprochn. Trotz ihrer Beliebtheit gibt's aber a poar schwierige Konzepte, mit denen Entwickler kämpfn kinnan. Oans davon is des "this"-Schlüsselwort.

Des "this"-Schlüsselwort in Javascript kann sehr varwirrend sei, vor ollem für Entwickler, de aus ondere Programmiersprochn kemman. Im Grunde bezieht si "this" auf'n Kontext, in dem a Funktion aufgrufn wird. Es kann si aber je noch Kontext ändern und zu unerwartete Ergebnisse führn.

Damit's einfacher wird, schaun ma uns a Beispiel o:

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

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

In dem Beispiel bezieht si des "this"-Schlüsselwort auf's "person"-Objekt, weil de "fullName"-Funktion im Kontext von dem Objekt aufgrufn wird.

Oba wos passiert, wenn ma de Funktion in an ondern Kontext aufruaft? Schaun ma uns dazu des nächste Beispiel o:

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

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

In dem Beispiel wird de "fullName"-Funktion in an ondern Kontext aufgrufn, nämlich im globalen Kontext. Weil's im globalen Kontext ka "firstName"- oda "lastName"-Variablen gibt, gibt de Funktion "undefined" zruck. Is ned schee, oba so is's, du Tschapperl.

Um des Problem zu lösn, kinnan ma des "this"-Schlüsselwort explizit auf's "person"-Objekt setzn, indem ma de "bind"-Methode valwendn:

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

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

Do valwendn ma de "bind"-Methode, um des "this"-Schlüsselwort auf's "person"-Objekt zu setzn, egal wo de Funktion aufgrufn wird.

Insgesamt kann des "this"-Schlüsselwort in Javascript sehr varwirrend sei, oba mit a bissl Übung und Vaständnis vo de Konzepte dahinter kinnan Entwickler des Problem leicht lösn. Wenn ma de "bind"-Methode und ondere Techniken valwendet, kinnan Entwickler sicherstöin, dass ihre Funktionen imma im richtigen Kontext aufgrufn wern.

NeicherReact Native - Wos is des?ElterDependency Injection