Здравствуйте! На сайте
https://learn.javascript.ru/ темы Локальные переменные для объекта (по замыканием) Не могу понять решение следующей задачи:
Само решение:
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;
};
}
function inArray(arr) {
return function(x) {
return arr.indexOf(x) != -1;
};
}
var arr = [1, 2, 3, 4, 5, 6, 7];
alert( filter(arr, inBetween(3, 6)) ); // 3,4,5,6
Мне непонятна функция inBetween и inArray. Откуда она берёт этот "x"? Откуда и как он берётся, поясните пожалуйста?