Как в подфункцию передаётся значение?
Доброго времени!
Подскажите пожалуйста, как интерпретатор определяет что значение "val" нужно передать в качестве "x" в function(x), почему он не передаёт его как первый аргумент функции function inBetween(a, b)? function filter(arr, func) { var result = []; for (var i = 0; i < arr.length; i++) { var val = arr[i]; if (func(val)) { result.push(val); } } return result; } function inBetween(a, b) { return function(x) { return x >= a && x <= b; }; } var arr = [1, 2, 3, 4, 5, 6, 7]; alert( filter(arr, inBetween(3, 6)) ); // 3,4,5,6 |
Функция inBetween() при ее вызове возвращает функцию, которая принимает один параметр... Эту функцию-результат потом и будет использовать функция filter(). Она-то и передаст тот самый "х"...
Параметры самого inBetween() не нужны функции-результату... |
Спасибо огромное!
Вопрос исчерпан. |
Часовой пояс GMT +3, время: 07:02. |