SyntaxError: 函数语句需要名称
当代码中存在需要名称的 函数语句 时,就会出现 JavaScript 异常 "function statement requires a name"。
消息
SyntaxError: Function statements require a function name (V8-based) SyntaxError: function statement requires a name (Firefox) SyntaxError: Function statements must have a name. (Safari)
错误类型
哪里出错了?
示例
语句与表达式
带标签的函数
标签与函数名称是完全不同的特性。您不能使用标签作为函数名称。
js
function Greeter() {
german: function () {
return "Moin";
}
}
// SyntaxError: function statement requires a name
此外,带标签的函数声明本身就是一项已弃用的功能。请改用常规函数声明。
js
function Greeter() {
function german() {
return "Moin";
}
}
对象方法
如果您打算创建对象的方法,则需要创建一个对象。然后,以下在 function
关键字后没有名称的语法就是有效的。
js
const greeter = {
german: function () {
return "Moin";
},
};
您也可以使用 方法语法。
js
const greeter = {
german() {
return "Moin";
},
};
回调语法
此外,在使用回调时请检查您的语法。大括号和逗号很容易让人感到困惑。
js
promise.then(
function () {
console.log("success");
});
function () {
console.log("error");
}
// SyntaxError: function statement requires a name
正确的方法是
js
promise.then(
function () {
console.log("success");
},
function () {
console.log("error");
},
);