2016-02-22 139 views
1

我想从箭头功能输出对象(在很短的形式),所以完整的代码:从箭头函数返回的对象

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

带箭头的功能是:

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

现在短形式应该是这样的:

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

不起作用,还有这样一条:

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

只有一个解决方案,我现在发现是使用创建对象的符号:

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

有另一种方式?

+0

'somemethod(({id})=>({id}))'' –

回答

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

对于您在使用括号,否则它不工作

这是因为在大括号中的代码({})解析为你的对象包装对象语句序列

尝试如下

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

参考:arrow functions