从箭头函数返回对象

时间:2016-02-22 10:17:22

标签: javascript ecmascript-6

我想从箭头函数输出对象(以简短形式),所以完整的代码是:

somemethod(function(item) {
   return {id: item.id};
})

带箭头功能:

somemethod((item) => {
   return {id: item.id};
})

现在简短形式应该是:

somemethod(item = > {id: item.id} )

这不起作用,以及这个:

somemethod(item = > {{id: item.id}} )

我现在找到的只有一个解决方案是使用create Object表示法:

somemethod(item = > new Object({id: item.id}) )

还有另一种方法吗?

2 个答案:

答案 0 :(得分:1)

somemethod(item => ({ id: item.id }))

测试:

> a = item => ({id: item.id})
< function item => ({id: item.id})
> a({ id: 5, name: 7 });
< Object {id: 5}

答案 1 :(得分:1)

对于对象,您使用括号包裹对象,否则它无法正常工作

这是因为大括号({})内的代码被解析为一系列语句

尝试以下

var func = () => ({ foo: 1 });

参考:arrow functions