자바스크립트에서 함수 커링(Currying)의 사용 예시는 어떤 것이 있나요?
아래는 함수 커링의 사용 예시입니다.
// 고정된 인자를 갖는 함수 정의
function add(a) {
return function(b) {
return a + b;
}
}
// 함수 커링된 함수
const addFive = add(5);
console.log(addFive(3)); // 출력: 8
const addTen = add(10);
console.log(addTen(7)); // 출력: 17
위의 예시에서 add
함수는 인자 a
를 받아들이고, 내부에서 다른 함수를 반환합니다. 반환된 함수는 인자 b
를 받아들이고, a + b
의 결과를 반환합니다.
addFive
와 addTen
은 add
함수를 커링하여 생성된 새로운 함수들입니다. addFive
는 a
가 5로 고정된 상태에서 b
만 받아들이는 함수이며, addTen
은 a
가 10으로 고정된 상태에서 b
만 받아들이는 함수입니다.
이렇게 커링된 함수들은 한 번에 하나의 인자만 받아들이기 때문에, 필요한 시점에 인자를 부분적으로 고정시켜 함수를 호출할 수 있는 장점을 가지고 있습니다.