[英]Higher-Order Functions in JS
我正在学习JavaScript。 我有一个问题。 本书Eloquent JavaScript中的以下代码:
function forEach(array, action) {
for (var i = 0; i < array.length; i++)
action(array[i]);
}
var numbers = [1, 2, 3, 4, 5],
sum = 0;
forEach(numbers, function(number) {
sum += number;
});
console.log(sum);
这段代码中发生了什么? 在调用forEach函数时,如何确定数字是多少? 它如何从数字数组中提取数字?
这段代码中发生了什么?
这是您的forEach
函数工作方式的描述:
forEach
函数接受两个参数,即数组和函数 for
循环来遍历数组 action(array[i])
,后者将调用传入的函数并将其传递给一个数组元素。 array[i]
从数组中获取下一项, action(array[i])
调用传入的函数,并从数组中传递该项。 然后,当您这样调用时:
forEach(numbers, function(number) {
sum += number;
});
它将为您在numbers
数组中的每个数字调用一次传递给您的函数,并且在调用该函数时,它将从数组传递一个数字作为函数的第一个参数。
让人困惑的一件事是传递给forEach
函数中的number
参数只是为该函数的第一个参数分配的名称。 它可以命名为任何您想要的名称,并且与forEach()
函数定义中使用的任何名称无关。 函数参数的声明只是分配给每个参数的标签,使您更易于使用它们。 您也可以这样做:
forEach(numbers, function(whateverYouWant) {
sum += whateverYouWant;
});
在调用forEach函数时,如何确定数字是多少?
您的for
循环一次遍历整个数组一个数字,并为数组中的每个数字调用一次回调函数。
它如何从数字数组中提取数字?
array[i]
是从数组中提取数字的位置。 这是用于从其中阵列中检索第i个值正常数组索引i
从变化0
至阵列减去1的长度。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.