我一直在 javascript 中使用回调函数,但我一直不明白回调如何知道它可以接受哪些变量。
让我们看下面的示例代码;
var friends = ["Mike", "Stacy", "Andy", "Rick"];
friends.forEach(function (name, index){
console.log(index + 1 + ". " + name);
});
这在逻辑上输出;
1. Mike
2. Stacy
3. Andy
4. Rick
实际上,以下所有内容都会输出相同的内容;
friends.forEach(function (index, name){
console.log(name + 1 + ". " + index);
});
friends.forEach(function (foo, bar){
console.log(bar + 1 + ". " + foo);
});
friends.forEach(function (x, y){
console.log(y + 1 + ". " + x);
});
内部的回调函数forEach
如何知道如何解释name
和index
?换句话说; 回调如何知道数组有值和索引?很明显,你给回调函数的输入变量起的名字并不重要,但顺序很重要,那么事情是如何映射的呢?
从这里我也想将这些知识应用于一般的其他对象,而不仅仅是列表。那么变量是如何从对象映射到回调函数的呢?这是在对象中预先定义的东西吗?