Каррирование
Что такое каррирование? Где применяется?
Каррирование - это создание новой функциию, путем фиксирования агрументов существующей функции.
Можно реализовать через 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 объединяет два массива
};
};