var getTempItem = id => ({ id: id, name: "Temp" });我知道上面的箭头函数相当于:
var getTempItem = function(id) {
return {
id: id,
name: "Temp"
};
};但我有点困惑于以下几点
const Todo = ({ onClick, completed, text }) => (
<li
onClick={onClick}
style={{
textDecoration: completed ? 'line-through' : 'none'
}}
>
{text}
</li>
)为什么函数参数包装在大括号中,而函数体仅用圆括号包装?
发布于 2016-08-14 04:38:32
ES6的几个语法糖元素在这里起着作用:
奖励:箭头函数与函数声明和函数表达式不同的一种方式是,在箭头函数中(即使是具有非简洁体的箭头函数),arguments和this的值与包含范围相同。因此,使用.call或.apply调用箭头函数没有任何效果,如果您希望箭头函数接受可变数量的参数,则需要使用rest参数。
发布于 2016-08-14 04:49:13
在圆括号中包装的函数体返回在括号中包装的表达式的值。
var getTempItem = id => ({ id: id, name: "Temp" });
var getTempItem = id => {return { id: id, name: "Temp" }};
// Identical发布于 2016-08-14 05:11:23
用一个例子来展示。
参数分解:
在这里可以看到,当logEmployee函数接受两个参数时,我们只是作为代码的一部分传入employee对象。我们不会传递单独的参数。因此,在运行时提取employee对象的内容以匹配函数所期望的params,并相应地传入。
const employee = {
id: 1,
name: "John",
age: 28
}
const logEmployee = ({name, age}) => (
console.log(name, age)
)
logEmployee(employee);注意,函数只需要名称和年龄,因此只有这两个属性将从employee对象中解构。
https://stackoverflow.com/questions/38939153
复制相似问题