자바스크립트에서 Currying을 통해 함수의 리턴 값을 조작하는 방법은 무엇인가요?
Currying을 사용하여 함수의 리턴 값을 조작하는 방법은 다음과 같습니다.
- 클로저 활용하기: 클로저는 함수 내부에서 정의된 함수로, 외부 함수에서 정의된 변수에 접근할 수 있습니다. Currying을 통해 반환되는 함수는 클로저로서, 이전 인자들을 기억하고 사용할 수 있습니다. 이를 활용하여 리턴 값을 조작할 수 있습니다.
function add(x) {
return function(y) {
return x + y;
};
}
var increment = add(1);
console.log(increment(5)); // 6
위 예제에서 add
함수는 인자 x
를 받고, 내부에서 함수를 정의하여 x
와 y
를 더한 값을 리턴합니다. add(1)
을 호출하면 x
에 1이 할당되고, 반환되는 함수는 x
값과 전달된 y
값을 더합니다.
- 함수 커링 라이브러리 사용하기: 자바스크립트에는 함수 커링을 쉽게 구현할 수 있는 라이브러리가 있습니다. 예를 들어,
lodash
라이브러리의curry
함수를 사용하면 간단하게 함수를 커링할 수 있습니다.
const _ = require('lodash');
function multiply(x, y) {
return x * y;
}
var multiplyCurried = _.curry(multiply);
console.log(multiplyCurried(2)(3)); // 6
위 예제에서 multiply
함수를 _.curry
함수로 감싸주면 커링된 함수인 multiplyCurried
가 반환됩니다. 이후 multiplyCurried
함수에 인자를 하나씩 넘겨줄 수 있습니다.
Currying을 통해 함수의 리턴 값을 조작하고 다양한 변형을 적용할 수 있습니다. 이를 통해 코드의 가독성과 재사용성을 높일 수 있습니다. 주의할 점은 너무 남발하면 코드의 복잡도가 높아질 수 있으므로 적절히 사용하는 것이 중요합니다.
#Currying #자바스크립트