使用函数参数链接函数

时间:2015-07-23 13:01:51

标签: javascript

我要做的是将一系列函数与函数“连接”起来。所以在一系列函数中:

var functionArray = [functionA, functionB, functionC];

functionA(next)应该能够调用对其函数参数next的调用来调用functionB

问题是我不能使用承诺(它会让它变得容易,不幸),所以我设计了这样的方式:

var functionArray = [functionA, functionB];

functionArray.push(functionC.bind(undefined, args));

for (var i = functionArray.length - 1; i-- > 0; ) {
  functionArray[i] = functionArray[i].bind(undefined, args, functionArray[i + 1]);
}

functionArray[0]();

我的问题是,是否有更好的方法来实现这一目标,因为上述功能看起来非常糟糕。也许是 Array.prototype.reduce

的东西

1 个答案:

答案 0 :(得分:1)

为什么不使用多维数组来存储函数及其参数。这可以清理一些,但基本的想法是:

var functionArray = [
    { func: yourFunction, args: [1, 2] }
];

for (var i = 0 i < functionArray.length; i++) {
    var func = functionArray[i].func;
    var args = functionArray[i].args;
    func.apply(this, args);
}