[英]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.