返回匿名函数是否应该以分号结尾?

时间:2019-03-27 08:04:55

标签: javascript

MDN使用我提供的第二个代码,它运行正常,但最后抛出错误。他们为什么用分号结束匿名功能?如果匿名函数不存在于函数表达式中,可以吗?如果函数不是函数表达式,则不应以分号结尾。

function makeAdder(x) {
  return function(y) {
    return x + y;
  }
}

var add5 = makeAdder(5);
var add10 = makeAdder(10);

console.log(add5(2));  // 7
console.log(add10(2)); // 12

function makeAdder(x) {
  return function(y) {
    return x + y;
  };
}

var add5 = makeAdder(5);
var add10 = makeAdder(10);

console.log(add5(2));  // 7
console.log(add10(2)); // 12

1 个答案:

答案 0 :(得分:6)

  

运行正常,但最后抛出错误

听起来像 linting错误,而不是Javascript错误-记住这一点很重要。 Linting主要是样式指南,而不是逻辑指南。

return function(y) {
  return x + y;
};

这里的函数是返回的,没有声明-这意味着它是一个函数表达式,而不是函数声明,因此return表达式的末尾应有一个{{1 }}。

匿名函数总是 函数表达式;函数声明需要一个名称,例如:

;