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)); // 12Run Code Online (Sandbox Code Playgroud)
与
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)); // 12Run Code Online (Sandbox Code Playgroud)
它运行正常,但最后抛出错误
听起来像是掉毛错误,而不是Javascript错误-记住这一点很重要。Linting主要是样式指南,而不是逻辑指南。
在
return function(y) {
return x + y;
};
Run Code Online (Sandbox Code Playgroud)
返回的函数没有声明,这意味着它是一个函数表达式,而不是函数声明,因此return表达式的末尾应有一个;。
匿名函数始终是函数表达式。函数声明需要一个名称,例如:
function someFnName() {
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
57 次 |
| 最近记录: |