首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Errors: Unnamed function statement

信息

代码语言:javascript
复制
SyntaxError: function statement requires a name [Firefox]
SyntaxError: Unexpected token ( [Chrome]

错误类型

SyntaxError

哪里出错了?

代码中有一个函数声明需要一个名字。你需要检查函数是如何定义的,如果你需要为它提供一个名字,或者如果这个函数需要是一个函数表达式,一个IIFE,或者如果函数代码在这个上下文中被正确地放置。

示例

语句与表达式

一个函数语句(或函数声明)需要一个名字是不行的:

代码语言:javascript
复制
function () {
  return 'Hello world';
}
// SyntaxError: function statement requires a name

你可以使用一个函数表达式(赋值)来代替:

代码语言:javascript
复制
var greet = function() {
  return 'Hello world';
};

或者,你的函数可能是一个IIFE(立即调用的函数表达式),它是一个定义后立即运行的函数。在这种情况下,您将需要更多的大括号:

代码语言:javascript
复制
(function () {

})();

标记功能

如果您正在使用功能标签,则仍然需要在function关键字后面提供一个功能名称。这不起作用:

代码语言:javascript
复制
function Greeter() {
  german: function () { 
    return "Moin";
  }
}
// SyntaxError: function statement requires a name

这将工作,例如:

代码语言:javascript
复制
function Greeter() { 
  german: function g() { 
    return "Moin"; 
  } 
}

对象方法

如果您打算创建一个对象的方法,您将需要创建一个对象。那么在function关键字之后没有名字的以下语法是有效的。

代码语言:javascript
复制
var greeter = {
  german: function () {
    return "Moin";
  } 
};

回调语法

另外,使用回调时检查你的语法。括号和逗号可以很容易地变得困难。

代码语言:javascript
复制
promise.then(
  function() {
    console.log("success"); 
  });
  function() {
    console.log("error");
}
// SyntaxError: function statement requires a name

正确的是:

代码语言:javascript
复制
promise.then(
  function() {
    console.log("success");
  },
  function() {
    console.log("error");
  }
);

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com