代码之家  ›  专栏  ›  技术社区  ›  Stepan Suvorov bolelamx

从箭头函数返回对象[副本]

  •  5
  • Stepan Suvorov bolelamx  · 技术社区  · 10 年前

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

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

    通过箭头功能,它是:

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

    现在缩写应该是这样的:

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

    不起作用的,还有这个:

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

    我现在找到的唯一一个解决方案是使用createObject表示法:

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

    还有别的办法吗?

    2 回复  |  直到 10 年前
        1
  •  5
  •   Shushanth Pallegar    10 年前

    对于Objects,您必须使用圆括号包裹对象,否则它将不起作用

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

    尝试如下

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

    参考: arrow functions

        2
  •  1
  •   Sergiy Pereverziev    10 年前
    somemethod(item => ({ id: item.id }))
    

    测试:

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