Errors: Unnamed function statement
Errors: Unnamed function statement
信息
SyntaxError: function statement requires a name [Firefox]
SyntaxError: Unexpected token ( [Chrome]
错误类型
SyntaxError
哪里出错了?
代码中有一个函数声明需要一个名字。你需要检查函数是如何定义的,如果你需要为它提供一个名字,或者如果这个函数需要是一个函数表达式,一个IIFE,或者如果函数代码在这个上下文中被正确地放置。
示例
语句与表达式
一个函数语句
(或函数声明
)需要一个名字是不行的:
function () {
return 'Hello world';
}
// SyntaxError: function statement requires a name
你可以使用一个函数表达式(赋值)来代替:
var greet = function() {
return 'Hello world';
};
或者,你的函数可能是一个IIFE(立即调用的函数表达式),它是一个定义后立即运行的函数。在这种情况下,您将需要更多的大括号:
(function () {
})(
标记功能
如果您正在使用功能标签,则仍然需要在function
关键字后面提供一个功能名称。这不起作用:
function Greeter() {
german: function () {
return "Moin";
}
}
// SyntaxError: function statement requires a name
这将工作,例如:
function Greeter() {
german: function g() {
return "Moin";
}
}
对象方法
如果您打算创建一个对象的方法,您将需要创建一个对象。那么在function
关键字之后没有名字的以下语法是有效的。
var greeter = {
german: function () {
return "Moin";
}
};
回调语法
另外,使用回调时检查你的语法。括号和逗号可以很容易地变得困难。
promise.then(
function() {
console.log("success"
}
function() {
console.log("error"
}
// SyntaxError: function statement requires a name
正确的是:
promise.then(
function() {
console.log("success"
},
function() {
console.log("error"
}