자바스크립트에서 Currying을 사용하여 함수의 일부 파라미터를 변경하는 방법은 무엇인가요?
예를 들어, 다음과 같은 함수가 있다고 가정해봅시다:
function add(a, b, c) {
return a + b + c;
}
위 함수를 Currying을 사용하여 첫 번째 파라미터 a를 설정한 새로운 함수를 만들고 싶다면, 다음과 같이 할 수 있습니다:
function curryAdd(a) {
return function(b, c) {
return a + b + c;
}
}
var add5 = curryAdd(5);
console.log(add5(2, 3)); // 5 + 2 + 3 = 10
위 예제에서 curryAdd
함수를 사용하여 add5
함수를 생성하였습니다. curryAdd(5)
를 호출하면, 내부에서 반환되는 익명 함수가 a
의 값을 5로 갖게됩니다. 이후 add5
를 호출할 때는 b
와 c
를 전달하면서, a
에는 이미 5가 설정되어있기 때문에 덧셈 연산을 수행할 수 있습니다.
이렇게 Currying을 사용하면 특정한 파라미터를 이미 설정한 함수를 생성하고, 나중에 필요에 따라 추가 파라미터를 전달하여 호출할 수 있습니다.