Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
Der JavaScript-Ausnahmefehler "functions cannot be labelled" tritt auf, wenn eine function-Deklaration ein Label davor hat.
Funktionsdeklarationen sollten niemals gekennzeichnet werden, da Labels nur auf Anweisungen, nicht auf Deklarationen angewendet werden sollten. Es gibt keine Möglichkeit, tatsächlich auf dieses Label zu springen. Aufgrund einiger veralteter JavaScript-Syntaxregeln ist die Fehlerbedingung jedoch etwas komplizierter als notwendig:
Die Fehlermeldung könnte etwas in der Art von "ungültiger Ort, um eine Funktionsdeklaration erscheinen zu lassen" besagen, da der Parser, wenn er ein Label sieht, erwartet, dass eine Anweisung folgt, und eine Funktionsdeklaration ist keine Anweisung. Es hängt davon ab, ob die Perspektive des Fehlers so ist, dass ein Label nicht von einer Funktion gefolgt werden kann, oder dass eine Funktion nicht von einem Label vorangestellt werden kann.
Während es möglich ist, dass Sie tatsächlich erwarten, dass das Label etwas in der Art eines Sprungziels tut, hatten Sie normalerweise nicht vor, dass es ein Label ist. Der häufigste Fall ist, dass Sie tatsächlich möchten, dass es ein Eigenschaftsschlüssel in einem Objektliteral ist:
Hier ist {...} tatsächlich kein Objektliteral, sondern der Blockkörper der Pfeilfunktion, so dass greet: zu einem Label wird. Um dies zu beheben, müssen Sie das Objektliteral in Klammern setzen:
Sie möchten auch möglicherweise die Methodensyntax für Objektliterale verwenden, die diese Falle vermeidet:
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.