我有代碼使用currying來獲得數組的平均值,這是由連接兩個數組產生的:n大小數組和m大小數組。如何使用適用於咖喱?
var avg = function(...n){
let tot=0;
for(let i=0; i<n.length; i++){
tot += n[i];
}
return tot/n.length;
};
var spiceUp = function(fn, ...n){
return function(...m){
return fn.apply(this, n.concat(m));
}
};
var doAvg = spiceUp(avg, 1,2,3);
console.log(doAvg(4,5,6));
在這一行return fn.apply(this, n.concat(m));
,我不明白爲什麼我們需要使用apply
。我們與平均函數綁定的對象是什麼,爲什麼只是正常調用(return fn(n.concat(m));
)不起作用?
只用'return fn(n.concat(m));' – madox2