reduxのcreateStore, applyMiddlewareのソースの

```

    function createStore(reducer, preloadedState, enhancer) {
      //省略
      return enhancer(createStore)(reducer, preloadedState)
      //省略
    }
    
    function applyMiddleware(...middlewares) {
      return createStore => (...args) => {
      //省略
    }
    
```

上記のcreateStore、applyMiddleware関数の動作がいまいち分かりません  
これはcreateStoreを実行した際enhancerを実行  
enhancer(applyMiddleware)がコールバックでcreateStoreを実行しreducerとpreloadedStateを引数にとり再度createStoreを実行している  
といった感じで合っているのでしょうか？

該当ソースのリンクは以下になります  
<https://github.com/reactjs/redux/blob/master/src/createStore.js>  
<https://github.com/reactjs/redux/blob/master/src/applyMiddleware.js>
CC BY-SA 3.0
2018-01-03T18:02:51.840
40701
2018-01-04T17:03:36.387
2018-01-04T17:03:36.387
26616
26616
question
javascript redux
reduxのcreateStore, applyMiddleware