繁体   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