Каррирование

Что такое каррирование? Где применяется?

Каррирование - это создание новой функциию, путем фиксирования агрументов существующей функции.

Можно реализовать через bind(null, args):

function sum(a, b){
    console.log(a + b);
};

var double = sum.bind(null, 2);
double(3);

А можно реализовать свой собственный метод

function partial(){
    var fn = this;
    var args = Array.prototype.slice.call(arguments); //arguments это не массив, а slice превращает его в массив
    return function(){
        return fn.apply(this, args.concat(Array.prototype.slice.call(arguments)); //concat объединяет два массива
    };
};

results matching ""

    No results matching ""