Sobes.tech
Junior

Was ist der Unterschied zwischen den beiden Arten, eine Funktion zu definieren?

sobes.tech KI

Antwort von AI

Der Hauptunterschied liegt im Kontext von this.

Methode zur Funktionsdefinition Unterschied
Funktionsdeklaration Der Kontext this wird durch den Aufruf der Funktion bestimmt. Sie wird vor der Ausführung des Codes gehoben (hoisting).
Arrow-Funktion Der Kontext this erbt vom umgebenden (lexikalischen) Kontext. Sie wird nicht gehoben (kein Hoisting).
// Funktionsdeklaration
function reguläreFunktion() {
  console.log(this); // `this` hängt vom Aufruf ab
}

// Arrow-Funktion
const pfeilFunktion = () => {
  console.log(this); // `this` erbt vom Kontext, in dem die Funktion definiert ist
};

Arrow-Funktionen haben auch kein eigenes arguments-Objekt (es wird vom äußeren Kontext übernommen) und können nicht als Konstruktoren mit new verwendet werden.