Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
SyntaxError: Function-Anweisung erfordert einen Namen
Die JavaScript-Ausnahme "function statement requires a name" tritt auf, wenn es eineFunction-Anweisung im Code gibt, die einen Namen erfordert.
In diesem Artikel
Meldung
SyntaxError: Function statements require a function name (V8-based)SyntaxError: function statement requires a name (Firefox)SyntaxError: Function statements must have a name. (Safari)
Fehlertyp
SyntaxErrorWas ist schiefgelaufen?
Es gibt eineFunction-Anweisung im Code, die einen Namen erfordert. Sie müssen überprüfen, wie Funktionen definiert sind, und ob Sie einen Namen dafür angeben müssen oder ob die betreffende Funktion eine Function-Expression, einIIFE sein muss, oder ob der Funktionscode in diesem Kontext überhaupt korrekt platziert ist.
Beispiele
>Anweisungen vs. Ausdrücke
EineFunction-Anweisung (oderFunction-Deklaration) erfordert einen Namen. Das wird nicht funktionieren:
function () { return "Hello world";}// SyntaxError: function statement requires a nameSie können stattdessen eineFunction-Expression (Zuweisung) verwenden:
const greet = function () { return "Hello world";};Wenn Ihre Funktion alsIIFE (sofort ausgeführter Funktionsausdruck, der eine Funktion ist, die ausgeführt wird, sobald sie definiert ist) gedacht ist, müssen Sie ein paar weitere Klammern hinzufügen:
(function () { // …})();Markierte Funktionen
Labels sind eine völlig andere Funktion als Funktionsnamen. Sie können ein Label nicht als Funktionsnamen verwenden.
function Greeter() { german: function () { return "Moin"; }}// SyntaxError: function statement requires a nameAußerdem sind markierte Funktionsdeklarationen selbst ein veraltetes Feature. Verwenden Sie stattdessen reguläre Funktionsdeklarationen.
function Greeter() { function german() { return "Moin"; }}Objektmethoden
Wenn Sie die Erstellung einer Methode eines Objekts beabsichtigten, müssen Sie ein Objekt erstellen. Die folgende Syntax ohne Namen nach demfunction-Schlüsselwort ist dann gültig.
const greeter = { german: function () { return "Moin"; },};Sie können auch dieMethodensyntax verwenden.
const greeter = { german() { return "Moin"; },};Callback-Syntax
Überprüfen Sie auch Ihre Syntax bei der Verwendung von Callbacks. Klammern und Kommas können schnell verwirrend werden.
promise.then( function () { console.log("success"); }); function () { console.log("error");}// SyntaxError: function statement requires a nameKorrekt wäre:
promise.then( function () { console.log("success"); }, function () { console.log("error"); },);