簡體   English   中英

Javascript中回調函數內的參數

[英]Parameters inside callback function in Javascript

讓我們考慮一下Javascript的每個方法:

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

friends.forEach(function (eachName, index){
  console.log(index + 1 + ". " + eachName);
});

有人可以解釋paraName eachName和index來自何處,因為它們沒有在代碼中的任何地方定義。

我理解這對許多人來說可能很明顯,但我無法理解這個概念。

您應該閱讀forEach的文檔。 在forEach中聲明的函數將為數組中的每個元素調用。 forEach將使用數組項的值作為第一個函數參數調用內部函數,並將數組的索引作為第二個函數參數調用。

所以forEach將迭代數組,類似於for循環,對於數組中的每個項,它將獲取值和索引並將其傳遞給聲明的函數。

您的困惑很可能來自參數名稱,但這些名稱可以是任何名稱。 第一個參數將始終是當前項數組值,第二個參數將是索引。

要編寫自己的函數,您將創建一個調用已定義函數的for循環。

如果我們查看您的原始代碼並取出該功能(這對測試BTW很有幫助)。

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

function doStuff(eachName, index){
  console.log(index + 1 + ". " + eachName);
}    

// Does is still the same as yours
friends.forEach(doStuff);

// This loop does exactly what a forEach polyfill would do
for(var i = 0; i < friends.length; i++) {
    doStuff(a[i], i);
}

看一下MDN foreach polyfill的完整示例。

暫無
暫無

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

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