繁体   English   中英

reduceRight 与 Javascript 中的函数数组?

[英]reduceRight with an array of functions in Javascript?

这段代码对函数列表有什么作用?

store = {};

mw = [f1, f2, f3];

ds = mw.map(function (fn) {
    return fn.bind(null, store);
});

ds2 = ds.reduceRight(function (dispatch, fn) {
    return fn.bind(null, dispatch);
});

它以某种方式组合它,但我不明白目标。 f*函数有什么要求?

原始函数使用参数值进行了两次柯里化:一次使用store ,第二次使用回调 function dispatch ,通过reduceRight是一个 function 引用下一个柯里化的数组 ZC1C425268E617A94F174C 中的 function。

所以f*应该是需要两个 arguments 的函数:发挥作用的 object (任何你想要的),以及接下来要调用的回调 function。 此规则的例外是最后一个function:它没有第二个参数。

以下是这些功能的示例:

 function f1(store, dispatch) { store["f1"] = "I"; return dispatch(); } function f2(store, dispatch) { store["f2"] = "was"; return dispatch(); } function f3(store) { store["f3"] = "here"; return store; } var store = {}; var mw = [f1, f2, f3]; var ds = mw.map(function (fn) { return fn.bind(null, store); }); var ds2 = ds.reduceRight(function (dispatch, fn) { return fn.bind(null, dispatch); }); // ds2 is a function, that chains all given functions together // through the callback system that they implement: console.log(ds2());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM