Я всегда использовал функции обратного вызова в JavaScript, но я никогда не понимал, как обратный вызов знает, какие переменные можно взять в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
? Другими словами; как обратный вызов знает, что массив имеет значения и индексы? Понятно, что имя, которое вы передаете входным переменным функции обратного вызова, не важно, но порядок, так как отображаются данные?
Отсюда я также хотел бы применить это знание к другим объектам в целом, а не только к спискам. Итак, как переменные отображаются из объекта в функции обратного вызова? Это что-то, что заранее определено в объекте?