簡體   English   中英

使用函數參數鏈接函數

[英]chaining functions with a function argument

我想做的是將一個函數數組與一個函數“連接”在一起。 因此,在一系列函數中:

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有關系

為什么不使用多維數組存儲函數及其參數。 可以清除一些內容,但基本思路是:

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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM