커링은 함수와 함께 사용할 수 있는 고급기술이다.
단일 호출로 처리할 함수를 각각의 인수가 호출 가능한 프로세스로 호출하고 병합하는 과정이다. 주로 , 어떤 함수를 호출할 때 대부분의 매개 변수가 항상 비슷하다면 커링을 사용할 만한 후보라고 할 수 있다.
매개변수 일부를 적용하여 새로운 함수를 동적으로 생성하면 이 동적 생성된 함수는 반복적으로 사용되는 매개변수를 내부적으로 저장하여, 매번 인자를 전달하지 않아도 원본함수가 기대하는 기능을 동작하게 할 수 있다.
function curry1(func) {
return function(arg1) {
return function (arg2) {
return func(arg1,arg2);
}
}
};
function curry2(func) {
return function(arg2) {
return function (arg1) {
return func(arg1,arg2);
}
}
};
function div(a,b) {
return a/b ;
}
let curriedSum1 = curry1(div);
let curriedSum2 = curry2(div);
console.log(curriedSum1(1)(2));
console.log(curriedSum2(1)(2));
커리의 방향 또한 정할 수 있다.