Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

Experiment: Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.

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:

js
function () {  return "Hello world";}// SyntaxError: function statement requires a name

Sie können stattdessen eineFunction-Expression (Zuweisung) verwenden:

js
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:

js
(function () {  // …})();

Markierte Funktionen

Labels sind eine völlig andere Funktion als Funktionsnamen. Sie können ein Label nicht als Funktionsnamen verwenden.

js
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.

js
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.

js
const greeter = {  german: function () {    return "Moin";  },};

Sie können auch dieMethodensyntax verwenden.

js
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.

js
promise.then(  function () {    console.log("success");  });  function () {    console.log("error");}// SyntaxError: function statement requires a name

Korrekt wäre:

js
promise.then(  function () {    console.log("success");  },  function () {    console.log("error");  },);

Siehe auch

MDN-Feedback-Box

Diese Seite wurde automatisch aus dem Englischen übersetzt.


[8]ページ先頭

©2009-2025 Movatter.jp