HTML: Markup language
CSS: Styling language
JavaScript: Scripting language
Web APIs: Programming interfaces
All web technology
Learn web development
Discover our tools
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
View in English Always switch to English
Die JavaScript-Ausnahme "function statement requires a name" tritt auf, wenn es eine Function-Anweisung im Code gibt, die einen Namen erfordert.
SyntaxError: Function statements require a function name (V8-based) SyntaxError: function statement requires a name (Firefox) SyntaxError: Function statements must have a name. (Safari)
SyntaxError
Es gibt eine Function-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, ein IIFE sein muss, oder ob der Funktionscode in diesem Kontext überhaupt korrekt platziert ist.
Eine Function-Anweisung (oder Function-Deklaration) erfordert einen Namen. Das wird nicht funktionieren:
function () { return "Hello world"; } // SyntaxError: function statement requires a name
Sie können stattdessen eine Function-Expression (Zuweisung) verwenden:
const greet = function () { return "Hello world"; };
Wenn Ihre Funktion als IIFE (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 () { // … })();
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"; } }
Wenn Sie die Erstellung einer Methode eines Objekts beabsichtigten, müssen Sie ein Objekt erstellen. Die folgende Syntax ohne Namen nach dem function-Schlüsselwort ist dann gültig.
function
const greeter = { german: function () { return "Moin"; }, };
Sie können auch die Methodensyntax verwenden.
const greeter = { german() { return "Moin"; }, };
Ü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"); }, );