Sunday, June 10, 2012

карринг в javascript

Преобразование функции к виду принимающему ряд аргументов по-одному. Дает нам возможность вызвать функцию так например: func(a)(b).

Пример на странице wiki с функцией которая складывает последовательно поступающие аргументы:

//проводим преобразование
function curry(x){
    return function(y){
        return x + y;
    }
}

//вызываем первый раз
var a = curry(4);

//вызываем второй раз
a(5);   // => 9

Впервые столкнулся с эти при описании простейшего шаблонизатора javascript, предложеного Джоном Ресигом. В нем такая консрукция используется чтобы вызывая одну и ту же функцию иметь возможность или 1) прекомпилировать шаблон для быстрого использования в дальнейшем или 2) сразу вызвать обработку данные-шаблон.

Сегодня чаще использую - Mustache.JS или его более мощный брат Handlebars.JS