ES6语法中的这些()是什么?

时间:2017-07-23 15:29:27

标签: javascript ecmascript-6 arrow-functions

我看到了这段代码:

const enhance = withHandlers({
    signIn: ({ signIn, provider }) => () => signIn(provider)
});

我理解enhance是一个功能。 signIn也是一个函数,但它们之间的空()的意义是什么?为什么它不能只是:

signIn: ({signIn, provider}) => signIn(provider)

1 个答案:

答案 0 :(得分:2)

没有。 ()是箭头功能的一部分。它是一个返回函数的函数。让我分解一下:

signIn: ({ signIn, provider }) => () => signIn(provider)
        ^                      ^   ^
     Destructuring        Implicit No argument
     assignment           return   arrow function
     for arguments

属性signIn是一个接受对象参数并返回执行signIn(provider)的函数的方法。

您的版本:

signIn: ({signIn, provider}) => signIn(provider)

不返回执行signIn(provider)的函数,它返回signIn(provider)的返回值。