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.