簡體   English   中英

如何調用函數作為函數的參數?

[英]How can functions be called as an argument for a function?

使這個問題浮現在我腦海(並且我試圖理解)的代碼是:

function sum(numbers) {
    var total = 0;
    forEach(numbers, function (number) {
        total += number;
    });
    return total;
}
show(sum([1, 10, 100]));

ps forEach是執行以下操作的函數:

function forEach(array, action) {
    for (var i = 0; i < array.length; i++)
        action(array[i]);
}

我想解釋一下上面的代碼是如何工作的,因為我不明白如何將函數作為函數的參數調用。

我最擔心的是如何將函數作為函數的參數調用。

參數中未調用它-函數本身已傳遞。 在JavaScript中,函數是一等值 它們是可以用括號調用的對象,但它們也具有常規屬性(如.prototype.name )和繼承的方法(如.call.bind )。 看一下Function對象文檔

您的sum代碼正在創建一個匿名函數,並將對它的引用傳遞到存儲在action變量中的forEach函數中。 然后從那里調用它。

將函數傳遞給另一個方法確定的值進行調用的概念稱為回調

暫無
暫無

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

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