Показать сообщение отдельно
  #1 (permalink)  
Старый 24.08.2012, 16:33
Интересующийся
Отправить личное сообщение для Имя Посмотреть профиль Найти все сообщения от Имя
 
Регистрация: 01.07.2011
Сообщений: 11

Объясните, почему функция работает именно так.
Всем привет.
Есть вопрос:

function addThree(x) {
    return x + 3;
}

function composed(func) {
    return function(x) {
        return func(func(x))
    }
}

var answer = composed(addThree)(4);


И не могу понять, что за странная передача аргумента в функцию - composed(addThree)(4) ??
Почему не вот так composed(addThree(4)) - я уже понял, что так нельзя, попробовал. Просто еще не сталкивался с подобным способом написания. Что в таком случае происходит? Ведь функция composed принимает только один параметр - func? Тогда что за странная запись (addThree)(4) ?

Новичок. Не судите строго
Спасибо.
Ответить с цитированием