Javascript-форум (https://javascript.ru/forum/)
-   Учебные материалы (https://javascript.ru/forum/study/)
-   -   Как в подфункцию передаётся значение? (https://javascript.ru/forum/study/67759-kak-v-podfunkciyu-peredajotsya-znachenie.html)

Владимир 111 06.03.2017 20:06

Как в подфункцию передаётся значение?
 
Доброго времени!
Подскажите пожалуйста, как интерпретатор определяет что значение "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

ksa 07.03.2017 08:45

Функция inBetween() при ее вызове возвращает функцию, которая принимает один параметр... Эту функцию-результат потом и будет использовать функция filter(). Она-то и передаст тот самый "х"...

Параметры самого inBetween() не нужны функции-результату...

Владимир 111 07.03.2017 17:49

Спасибо огромное!

Вопрос исчерпан.


Часовой пояс GMT +3, время: 09:30.