함수와 함께 사용하는 고급 기술입니다.
f(a, b, c)처럼 단일 호출로 처리하는 함수를 f(a)(b)(c)와 같이 각각의 인수가 호출 가능한 프로세스로 호출될 수, 병합되도록 변환하는 것입니다. 다항의 인수 중 고정값으로 쓸 것이 있을 때, 함수를 간소화해줄 수 있는 유용함이 있습니다.
function curry(f) { // 커링 변환을 하는 curry(f) 함수
return function(a) {
return function(b) {
return f(a, b);
};
};
}
// usage
function sum(a, b) {
return a + b;
}
let curriedSum = curry(sum);
alert( curriedSum(1)(2) ); // 3