有一个简单的回调example in JavaScriptIsSexy,我想更好地理解:
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
如何被理解为分别表示数组的元素(人物的名称为字符串)和索引号?是否必须通过此处未显示的调用中的参数指定,但如果您希望注释中显示输出,则可以预期吗?
答案 0 :(得分:2)
因为这是forEach
函数的定义方式,按照https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach:
使用三个参数调用回调:
- 元素值
- 元素索引
- 正在遍历的数组
显然,eachName
和index
这些名称并不代表他们自己的意思。他们的意义纯粹是位置。你可以打电话给他们,并随心所欲地使用它们。无论您首先放置什么名称,都将用作元素值的参数名称,第二个用作元素索引,第三个用作数组。
即使您还没有使用它,如果您需要,还可以声明和使用第三个参数 - 整个数组。同样,如果您不关心索引,也不需要定义索引。
答案 1 :(得分:0)
这就是forEach
的工作方式。
你给它一个函数来调用数组的每个元素。
将使用以下参数调用该函数(按顺序):
在你的情况下,你有
function (eachName, index)
因此,这意味着eachName
是当前元素,index
是索引,您不会使用第三个参数。
除了这三个参数之外,您还可以选择在函数内部显示this
。这是由forEach
的可选第二个参数指定的(在您的回调函数之后)。