从箭头函数返回对象

7
我希望能从箭头函数(简洁形式)中输出对象,因此完整代码如下:
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}) )

有其他方法吗?

1
somemethod(({id}) => ({id})) - Benjamin Gruenbaum
2个回答

7

对于对象,您需要使用括号将其包装起来,否则它将无法工作。

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

请尝试以下方法:

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

参考:箭头函数


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

测试:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接