【问题标题】:What are these () in ES6 syntax?ES6 语法中的这些 () 是什么?
【发布时间】:2017-07-23 15:29:27
【问题描述】:

我看到了这段代码:

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

我知道enhance 是一个函数。 signIn 也是一个函数,但是中间空的() 是什么意思呢?为什么不能这样:

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

【问题讨论】:

  • signIn 是一个返回函数的函数。返回的函数(当您调用signIn 时)是() => signIn(provider)。它没有论据。 enhance 是否为函数,不知道 WithHandlers 返回什么是无法确定的。
  • enhance 是这个高度具体的函数的一个非常抽象的名称
  • 对 ES6“箭头函数”做一点研究。有很多关于它们的文章。他们将解释()

标签: javascript ecmascript-6 arrow-functions


【解决方案1】:

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

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)的返回值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    • 2010-12-13
    • 2016-12-28
    • 2012-06-28
    • 2011-05-15
    • 2012-02-12
    相关资源
    最近更新 更多