据我所知,这时显然是错误的,
return arg => arg*2
与
相同return (arg)=>{arg*2}
我一直认为箭头功能在语法上更整洁。
但是用像这样的闭包这样做是行不通的。
function addTwoDigits(firstDigit){
return (secondDigit)=>{firstDigit + secondDigit}
}
let closure = addTwoDigits(5);
console.log(closure(5)) // Undefined
这还好
function addTwoDigitsV2(firstDigit){
return secondDigit => firstDigit + secondDigit
}
let closure2 = addTwoDigitsV2(10);
console.log(closure2(10))// 20
答案 0 :(得分:3)
箭头功能在这里的作用不同:-
(x)=> x*2 ; // dont have to return anything, x*2 will be returned
is not same as
(x) =>{x*2}
//here you need to return something otherwise undefined will be returned
答案 1 :(得分:2)
使用{}时必须设置return
return (arg)=>{return arg*2}
答案 2 :(得分:1)
如果箭头函数的主体包裹在return
... {
中,则需要}
语句。
由于您是一个表达式,因此可以跳过{
-}
和return
。但是,如果您有{
-}
,则需要return
语句。
在这里括号不是问题。如果您有多个参数,则需要它们。有了一个,它们是可选的。
答案 3 :(得分:1)
箭头功能仅在箭头后面有表达式时才自动提供return
。如果箭头后跟花括号,则将其视为函数主体周围的花括号,因此您必须显式编写return
,即
arg => arg * 2
等效于:
(arg) => { return arg * 2; }
function addTwoDigits(firstDigit) {
return (secondDigit) => {
return firstDigit + secondDigit
}
}
let closure = addTwoDigits(5);
console.log(closure(5))