箭头函数中的花括号
Curly Brackets in Arrow Functions
谁能解释一下:
我正在听 Dan Abramov 的课并做练习。
代码工作正常,但是,当编写以下特定函数时测试失败 with 大括号 **{ }**
.
case 'toggleTodo' :
return (
state.map( (one) => {
oneTodo( one, action )
})
);
同样的代码工作正常没有大括号。
case 'toggleTodo' :
return (
state.map( (one) =>
oneTodo( one, action )
)
);
Here is the JsBin。请参考第31行以后。
case 'toggleTodo' :
return (
state.map( (one) =>
oneTodo( one, action )
)
);
等于:
case 'toggleTodo' :
return (
state.map( (one) => {
return oneTodo( one, action )
})
);
参见return声明
这对大括号形成一个块,其中包含一个语句列表。您需要明确地使用 return
语句来使函数 return 成为某种东西。
如果省略大括号,箭头函数有一个简洁的主体,它仅由一个表达式组成,其结果将隐式成为 return 的值函数。
谁能解释一下:
我正在听 Dan Abramov 的课并做练习。
代码工作正常,但是,当编写以下特定函数时测试失败 with 大括号 **{ }**
.
case 'toggleTodo' :
return (
state.map( (one) => {
oneTodo( one, action )
})
);
同样的代码工作正常没有大括号。
case 'toggleTodo' :
return (
state.map( (one) =>
oneTodo( one, action )
)
);
Here is the JsBin。请参考第31行以后。
case 'toggleTodo' :
return (
state.map( (one) =>
oneTodo( one, action )
)
);
等于:
case 'toggleTodo' :
return (
state.map( (one) => {
return oneTodo( one, action )
})
);
参见return声明
这对大括号形成一个块,其中包含一个语句列表。您需要明确地使用 return
语句来使函数 return 成为某种东西。
如果省略大括号,箭头函数有一个简洁的主体,它仅由一个表达式组成,其结果将隐式成为 return 的值函数。