我有一個我能理解的函數。無法理解數組元素如何傳遞給函數的參數
function forEach(array, action) {
for (var i = 0; i< array.length; i++)
action(array[i]);
}
當我們調用該函數可以說forEach([1,2,3,4,5], console.log);
的代碼替換在體內的字的console.log字動作。而一切都像一個魅力。對 ?
但在這種情況下與匿名函數我感到困惑。
var numbers = [1, 2, 3, 4, 5], sum = 0;
forEach(numbers, function(number) { sum += number; });
在這種情況下,我們有一個匿名函數作爲參數。匿名函數如何從數組中逐個取出元素,並將其放入它的參數(數字)?中。
我能讓它在某種程度上更容易理解:
var FindSum = function (number) {
sum += number;
};
forEach(numbers, FindSum);
但我仍然與參數號混淆。 FindSum
函數如何接收數字?
的我不知道你的要價,但下面是最後的代碼是有效的 – MayorMonty
林問代碼是如何理解陣列的elemets應的參數號裏面放。 – user2300068
這兩種情況幾乎完全相同。在這兩種情況下,都會傳遞函數引用。首先,你傳遞一個宿主方法(* console.log *)的名字,在第二個函數表達式中傳遞一個函數表達式(如果你願意,可以有一個名字),所以唯一引用它的是* forEach *函數的* action *參數。除此之外,一切都是一樣的。 – RobG