фишка в скобках:
если хочешь передать саму функцию пишешь console.log( beetw ) без скобок.
когда пишешь beetw(3,6) функция выполняется и возвращает результат, этот результат - анонимная функция:
function(x){
if (a<x&&x<b)
return 1;
}
и эта функция и есть func(val) // val == x, а значения 3 и 6 сидят в замыкании
function()() - это к примеру та же конструкция function beetw. То есть функция возвращает функцию. первыми скобками вызываем саму функцию beetw() - результат будет анонимная функция, вторыми вызываем ту функцию, которую она возвращает.
если и так непонятно, то используй debugger; - в хроме все наглядно увидишь, firebug по мне не очень удобен.
JavaScript
Замыкания в js, помогите разобраться)
Есть ещё ресурсы для обучения: https://developer.mozilla.org/ru/docs/Web/JavaScript/Closures
val - i-тый элемент массива arr
func - это beetw(3,6). То есть beetw уже вызвали и присвоили a=3, b=6
func(val) - вызываем функцию, которую возвращает функция beetw(a,b) и передаём ей (именно этой вложенной функции) аргумент val. То есть val передали в return function(x) вместо икса
func - это beetw(3,6). То есть beetw уже вызвали и присвоили a=3, b=6
func(val) - вызываем функцию, которую возвращает функция beetw(a,b) и передаём ей (именно этой вложенной функции) аргумент val. То есть val передали в return function(x) вместо икса
Ты переводи всё на русский язык ! (как бы это странно не звучало, но это работает)
ВывестивЛог ( Отфильтровать ( ЧтоФильтруем, КакойФункциейФильтруем (ПараметрыСКлавы) ) )
Отфильтровать {
Для каждого ЭлементаМассива
Если ( КакойФункциейФильтруем (ЭлементМассива) ==Истина) arr_new.push(ЭлементМассива)
// Синтаксис конечно жесткий; Будет выглядеть примерно так
push 6
push 3
push ЭлементМассива
Call beetw
beetw:
pop ЭлементМассива ; код function(x) {
pop ...
ВывестивЛог ( Отфильтровать ( ЧтоФильтруем, КакойФункциейФильтруем (ПараметрыСКлавы) ) )
Отфильтровать {
Для каждого ЭлементаМассива
Если ( КакойФункциейФильтруем (ЭлементМассива) ==Истина) arr_new.push(ЭлементМассива)
// Синтаксис конечно жесткий; Будет выглядеть примерно так
push 6
push 3
push ЭлементМассива
Call beetw
beetw:
pop ЭлементМассива ; код function(x) {
pop ...
Похожие вопросы
- Помогите разобраться в логике кода (замыкания)
- Помогите, пожалуйста, понять замыкания в JS!
- Как работает замыкание в js
- Помогите разобраться с кодом (JavaScript)
- Помогите разобраться с каким-то странным JSON afqkjv. Не понимаю, каким должно быть имя поля Address.
- Помогите определиться с выбором нового языка (JS(TS) vs Java)
- Js фреймворки, что полезного можно для себя найти?
- В чем цель фреймворков js web?
- Помогите, пожалуйста, написать js код для обновления ссылки
- [HTML/CSS/JS] Как сохранять изменённые в .js данные оффлайн-сервера локально?