簡體   English   中英

您如何將傳遞給函數的任意數量的參數應用於JavaScript中另一個函數的參數?

[英]How do you apply an arbitrary numbers of arguments passed to function which is argument of another function in JavaScript?

您如何將無限數量的參數應用於另一個函數的參數?

這是我嘗試的:

var callIt = function(fn) {
    for(var i = 1; arguments.length + 1; i++){
        return fn(arguments[i]);
    }
 };

練習中有一個函數用於傳達所要求的內容:

callIt(sumAll, 1);

也許我喝了太多啤酒...

callIt(sumAll, 2,3) // 5 is expected but I got 2

參數設置為數組 ,刪除第一個元素,然后使用apply

var callIt = function(fn) {
    var args = [].slice.call(arguments);
    return fn.apply(null, args.slice(1));
}

或使用您的代碼進行工作:

var callIt = function(fn) {
    var args = [];
    for(var i = 1; i < arguments.length; i++){
        args.push(arguments[i]);
    }
    return fn.apply(null, args);
};
function show()
        {
            var args = Array.prototype.slice.call(arguments,1);
            arguments[0](args);
        }
 callIt(sumAll, 2,3) // 5 is expected but I got 2 

第一次迭代時, for循環中的Question return s中的javascript 另外, for循環沒有返回falsecondition 您可以利用rest parameter將函數參數與傳遞給callIt rest parameter分開

 var callIt = function(fn, ...args) { var res = 0; for(var i = 0; i < args.length; i++){ res += fn(args[i]); } return res }; var result = callIt(function(n) { return n }, 2,3); console.log(result); 

暫無
暫無

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

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