Programing/JavaScript
프로그래밍에서의 Curring 이란? Curring in javascript
리커니
2021. 10. 28. 16:42
반응형
프로그래밍에서의 Curring 이란? Curring in javascript
프로그래밍에서 Curring이란 함수가 부분적용으로 로직을 처리할 수 있도록 만들어가는 과정입니다.
매개변수가 항상 비슷한 함수를 호출하는 경우 Curring을 고려해볼 수 있습니다.
이론은 이렇고, 간단한 예로 Curring에 대해 이해해 보도록 하겠습니다.
아래와 같이 매개변수 x 와 y 를 전달받아 x + y 를 리턴하는 함수가 있습니다.
const sum = function(x, y){
return x + y;
}
만일 x값만 전달이 되었다면 결과는 어떻게 될까요?
const sum = function(x, y){
return x + y;
}
console.log(sum(5));
결과는 당연히 NaN ( Not a Number)가 됩니다.
매개변수로 전달된 5와 정의되지 않은 y의 합을 구하기 때문에 5 + undefined 가 되죠.
그럼 이 함수가 매개변수를 하나만 전달하여도 동작하게 하려면 어떻게 해야할까요?
const sum = function(x, y){
if(typeof y === "undefined"){
return function(y){
return x+y;
}
}
return x + y;
}
const newSum = sum(5);
console.log(newSum(4));
// console.log(sum(5)(4));
우선 y가 전달되지 않았을 경우에는 또다른 익명 함수를 리턴합니다.
그럼 newSum에는 리턴된 익명함수가 들어갈 것이고, newSum 함수를 실행하면 sum함수 실행시에 전달된 x는 closure로 동작을 하여 x+y값을 리턴하게 됩니다.
이처럼 x+y라는 결과를 얻기 위해 함수를 만드는 과정을 커링이라고 합니다.
클로저의 개념에 대해서는 아래의 Link를 참고하세요.
Link : https://aljjabaegi.tistory.com/293
참고 : JavaScript Patterns - 스토얀 스테파노프
반응형