我有一个我能理解的功能。
function forEach(array, action) {
for (var i = 0; i< array.length; i++)
action(array[i]);
}
当我们调用该函数时,我们可以说forEach([1,2,3,4,5], console.log);
该代码将单词action替换为正文中的单词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
函数如何接收数字?
答案 0 :(得分:2)
它与第一个示例完全相同:
number
所以numbers[i]
是var numbers = [1,2,3];
var FindSum = function (number) {
sum += number;
};
forEach(numbers, FindSum); // equals FindSum(1); FindSum(2); FindSum(3);
Route::get('auth/login', ['as' => 'login', 'uses' => 'Auth\AuthController@getLogin']);
Route::get('login', function(){ Redirect::route('login', 301); });
Route::get('authenticate', function(){ Redirect::route('login', 301); });
答案 1 :(得分:1)
var numbers = [1, 2, 3, 4, 5], sum = 0;
forEach(numbers, function(number) { sum += number; });
以非常简单的方式解释:
forEach采用数组(数字)和回调函数(匿名函数,也可以命名)
forEach然后将数字中的每个数字传递给匿名函数