функции двойной стрелки javascript es6

Я хочу лучше понять функции стрелок es6.

Приведем следующий пример:

    export default function applyMiddleware(...middlewares) {
      return (createStore) => (reducer, preloadedState, enhancer) => {
        // snip actual enhancer logic

        return {
            ...store,
            dispatch
        }
    }
}

Описываем вышесказанное словами:

  1. Наша экспортированная функция (applyMiddleware) принимает параметр массива с расширением.
  2. Затем applyMiddleware возвращает безымянную функцию с параметром createStore, которая на этот раз возвращает еще одну безымянную функцию с тремя параметрами.

Итак, без стрелок это выглядело бы так:

export default function applyMiddleware(...middlewares) {
  return function(createStore){
      return function(reducer,preloadedState,enhancer){
        //some logic

          return{...store,dispatch}
      }
    }
}

Мои вопросы:

  1. Я прав?
  2. Что такое общий пример использования / парадигма кода мы видим здесь?
16
задан S. Schenk 2 August 2019 в 13:25
поделиться