Javascript中回调函数中的参数 让我们考虑JavaScript的方法:< /P> var friends = ["Mike", "Stacy", "Andy", "Rick"]; friends.forEach(function (eachName, index){ console.log(index + 1 + ". " + eachName); });

Javascript中回调函数中的参数 让我们考虑JavaScript的方法:< /P> var friends = ["Mike", "Stacy", "Andy", "Rick"]; friends.forEach(function (eachName, index){ console.log(index + 1 + ". " + eachName); });,javascript,Javascript,谁能解释一下参数eachName和索引来自哪里,因为它们在代码中没有定义 我知道这对很多人来说可能很明显,但我不能理解这个概念。您应该阅读forEach上的文档。对数组中的每个元素调用forEach中声明的函数。forEach将调用内部函数,数组项的值作为第一个函数参数,数组元素的索引作为第二个函数参数 因此forEach将迭代数组,类似于for循环,对于数组中的每个项,它将获取值和索引并将其传递给声明的函数 您的困惑很可能来自参数名称,但这些名称可以是任何名称。第一个参数始终为当前项数组值,第

谁能解释一下参数eachName和索引来自哪里,因为它们在代码中没有定义


我知道这对很多人来说可能很明显,但我不能理解这个概念。

您应该阅读forEach上的文档。对数组中的每个元素调用forEach中声明的函数。forEach将调用内部函数,数组项的值作为第一个函数参数,数组元素的索引作为第二个函数参数

因此forEach将迭代数组,类似于for循环,对于数组中的每个项,它将获取值和索引并将其传递给声明的函数

您的困惑很可能来自参数名称,但这些名称可以是任何名称。第一个参数始终为当前项数组值,第二个参数为索引

要编写自己的函数,您需要创建一个for循环来调用定义的函数

如果我们查看您的原始代码并拉出该函数(这对于测试BTW很好)

var-friends=[“迈克”、“斯泰西”、“安迪”、“里克”];
函数doStuff(每个名称,索引){
console.log(索引+1+“+eachName);
}    
//它和你的一样吗
friends.forEach(多斯塔夫);
//此循环与forEach polyfill完全相同
for(var i=0;i

查看MDN foreach polyfill以获得完整的示例。

foreach
采用1个参数:一个回调函数,该函数由3个参数调用<代码>当前值
索引
数组
。请参阅。我阅读了文档,但找不到forEach的代码。它如何将每个项的值传递给回调函数?通过返回语句?如果你要写我自己的forEach循环?
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);
}