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.
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
Was 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 name
Sie 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 name
Auß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 name
Korrekt wäre:
promise.then( function () { console.log("success"); }, function () { console.log("error"); },);
Siehe auch
MDN-Feedback-Box
Diese Seite wurde automatisch aus dem Englischen übersetzt.