【发布时间】:2022-01-21 21:48:15
【问题描述】:
我想更好地理解 es6 箭头函数。
举个例子:
export default function applyMiddleware(...middlewares) {
return (createStore) => (reducer, preloadedState, enhancer) => {
// snip actual enhancer logic
return {
...store,
dispatch
}
}
}
用文字描述以上内容:
- 我们的导出函数 (applyMiddleware) 采用一个带有 spread 的数组参数。
- 然后applyMiddleware返回一个带createStore参数的无名函数,这次又返回了一个带三个参数的无名函数。
所以如果没有箭头,它看起来像这样:
export default function applyMiddleware(...middlewares) {
return function(createStore){
return function(reducer,preloadedState,enhancer){
//some logic
return{...store,dispatch}
}
}
}
我的问题:
- 我说的对吗?
- 我们在这里看到的常见用例/代码范例是什么?
【问题讨论】:
-
你问什么?
-
这不是数组参数的扩展,而是收集传递给该函数的参数进入一个数组。容易混淆,因为在函数call(而不是定义)中应用于数组的相同运算符具有相反的效果。
-
为什么不直接通过 babel 运行它并查看输出? babeljs.io/repl