Страницы

Поиск по вопросам

четверг, 4 октября 2018 г.

Передача функции в функцию в javascript

Есть такой пример в javascript:
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 (Хабр).

Комментариев нет:

Отправить комментарий