簡體   English   中英

回調函數的參數如何工作?

[英]How callback function's parameters work?

因此,我嘗試着具體地理解函數式編程和高階函數。 我從未清楚地了解過,回調函數的參數如何與例如數組建立聯系?

更清楚地說,讓我們看下面的代碼示例:

var friends = ["Mike", "Stacy", "Andy", "Rick"];

friends.forEach(function (eachName, index){
console.log(index + 1 + ". " + eachName); // 1. Mike, 2. Stacy, 3. Andy, 4. Rick
});

回調參數eachName如何知道它意味着要從數組返回項目,而index應該返回數組的索引? 數組和回調參數之間的連接如何工作?

forEach方法正在調用或調用您的回調函數。 更具體地說,讓我們看看forEach的工作方式。

function forEach(arr, func) {
  for (var i = 0; i < arr.length; i++) {
    func(arr[i], i);
  }
}

現在,您可以執行類似的操作。

 function forEach(arr, func) { for (var i = 0; i < arr.length; i++) { func(arr[i], i); } } var cars = ["BMW", "Tata Nano", "Lamborghini"]; forEach(cars, function (car, index) { alert(car + " " + index); }); 

API為您完成。 在這種情況下, array.forEach的回調始終設置為接受3個參數:當前項,當前項在數組中的索引以及數組本身。

具有不同參數簽名的API的一個示例是array.reduce 它設置為接受4個參數:累加器,當前項目,當前項目的索引和數組本身。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM