Sobes.tech
Middle

Warum darf das Schlüsselwort 'this' in JavaScript nicht verwendet werden?

sobes.tech KI

Antwort von AI

this kann in Pfeilfunktionen nicht verwendet werden, um sich auf den eigenen Kontext zu beziehen. Pfeilfunktionen erstellen kein eigenes this, sondern erben dessen Wert aus dem Gültigkeitsbereich, in dem sie definiert wurden.

Außerdem ist this in Rückrufen asynchroner Operationen oder Ereignis-Handler ohne explizite Bindung des Kontexts (.bind(), .call(), .apply()) unzuverlässig, da sich sein Wert ändern oder zum globalen Objekt (im Nicht-Strikt-Modus) oder undefined (im Strikt-Modus) werden kann.

Beispiel:

function traditionelleFunktion() {
  console.log(this); // this hängt vom Aufruf ab
}

const arrowFunktion = () => {
  console.log(this); // this erbt aus dem äußeren Gültigkeitsbereich
};

const obj = {
  methode: traditionelleFunktion
};

obj.methode(); // this - obj
traditionelleFunktion(); // this - globales Objekt (window / global)

const obj2 = {
  methode: arrowFunktion
};

obj2.methode(); // this - erbt. Wenn im globalen Bereich definiert, dann global / window.