[英]ECMAScript 6 arrow functions
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>
)
为什么函数参数用大括号括起来,而函数主体仅用括号括起来?
ES6的一些语法糖元素在这里起作用:
奖金:其中箭头功能是从函数声明和函数表达式不同的一种方式是在一个事实,即在箭头功能(甚至用非简明体),的值arguments
和this
是相同的包含范围内。 所以调用带有箭头的功能.call
或.apply
不会有任何效果,你需要的,如果你希望你的箭头功能可以带可变数量的参数,使用其余的参数。
括在括号中的函数体返回括在括号中的表达式的值。
var getTempItem = id => ({ id: id, name: "Temp" });
var getTempItem = id => {return { id: id, name: "Temp" }};
// Identical
举例说明。
参数解构:
在这里您可以看到,虽然logEmployee函数使用两个参数,但我们只是将employee对象作为代码的一部分传入。 我们没有传递单个参数。 因此,在运行时,将提取员工对象的内容以匹配该函数期望的参数,并相应地将其传递。
const employee = {
id: 1,
name: "John",
age: 28
}
const logEmployee = ({name, age}) => (
console.log(name, age)
)
logEmployee(employee);
请注意,该功能仅需要名称和年龄,因此只有这两个属性将从雇员对象中解构。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.