gpt4 book ai didi

javascript - Javascript 回调函数中的参数

转载 作者:搜寻专家 更新时间:2023-11-01 04:12:42 25 4
gpt4 key购买 nike

让我们考虑一下 Javascript 的 forEach 方法:

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

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

谁能解释一下参数 eachName 和 index 从何而来,因为它们没有在代码中的任何地方定义。

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

最佳答案

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

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

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

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

如果我们查看您的原始代码并提取函数(顺便说一下,这对测试很有用)。

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 以获得完整示例。

关于javascript - Javascript 回调函数中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51548505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com