其實你已經把該說的都說完了 😅,你的理解跟我的理解基本上是一樣的。但對於 store.dispatch 的認知不太一樣,因為 store.dispatch 是直接傳給最裡面 (最右邊) 的 middleware,應該不是一層一層傳上來。
middle1(middle2(middle3(store.dispatch)))
我覺得不好理解的原因是在 JavaScript 的 Functional Programming 寫法很彈性,curry 可以用 Arrow Function 寫得非常炫,可是可讀性就會稍微低一點。