var fruits = ['apple', 'banana', 'orange', 'grapes', 'pear', 'passionfruit'] // The three values on the callback function are: // element - The element being traversed // index - The current index of the item in the array starting at 0 // array - The array being traversed (probably mostly irrelevant) fruits.forEach(function(element, index, array) { console.log(index, element) })
в метод forEach передается функция. Я так понимаю, что в методе forEach где-то эта передаваемая функция вызывается. Чтобы ее вызвать, нужно ей передать 3 аргумента (желательно). Люди, написавшие код этой функции как-то там перебирают элементы массива fruits и вызывают мою callback функцию, передавая ей все эти три параметра. Каким образом они знают что на каком месте стоит? Ведь по сути я могу написать не function(element, index,array) а function(myelement, myindex,myarray) т.е. название параметров сменить и все равно будет работать. Получается, что элементы, передаваемые в функцию "привязаны" к месту параметра - 1, 2, 3 по счету. Так? Или где-то я ошибаюсь. Подскажите, пожалуйста? Вынесу вопрос отдельно: параметры, передаваемые в колбэк функцию "привязаны" к месту параметра?
Ответ Аргументы, переданные в функцию - это, по сути, массив arguments[]. Ваше предположение, что порядок имеет значение, верно. Магия JavaScript: arguments (Хабр).