Javascript 这些()在ES6语法中是什么?
我看到这个代码:Javascript 这些()在ES6语法中是什么?,javascript,ecmascript-6,arrow-functions,Javascript,Ecmascript 6,Arrow Functions,我看到这个代码: const enhance = withHandlers({ signIn: ({ signIn, provider }) => () => signIn(provider) }); 我理解增强是一种功能登录也是一个函数,但是中间的空()是什么意思呢?为什么不能是: signIn: ({signIn, provider}) => signIn(provider) 否。()是箭头功能的一部分。它是一个返回函数的函数。让我把它分解一下: signIn:
const enhance = withHandlers({
signIn: ({ signIn, provider }) => () => signIn(provider)
});
我理解增强是一种功能<代码>登录也是一个函数,但是中间的空()
是什么意思呢?为什么不能是:
signIn: ({signIn, provider}) => signIn(provider)
否。()
是箭头功能的一部分。它是一个返回函数的函数。让我把它分解一下:
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)
signIn
的返回值是一个返回函数的函数。返回的函数(当您调用signIn
时)是()=>signIn(provider)
。它没有任何论据。如果不知道WithHandlers
返回的是什么,就无法确定enhance
是否是一个函数。enhance
是这个非常具体的函数的一个非常抽象的名称对ES6“箭头函数”做一些研究。关于它们的文章很多。他们将解释()
。