반응형
프로그래밍에서의 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 - 스토얀 스테파노프
반응형
'Programing > JavaScript' 카테고리의 다른 글
javascript Chain-of-responsibility pattern 체이닝 패턴 (0) | 2021.11.16 |
---|---|
javascript 비공개 프로퍼티와 메소드, class prototype private public (0) | 2021.11.10 |
javascript 생성자 알짜만 빼먹기, 현업 활용 예 class, prototype (0) | 2021.10.28 |
javascript Object 의 property가 있는지 체크하는 여러 방법 (0) | 2021.10.27 |
주니어 개발자가 들이면 좋은 습관! (0) | 2021.10.19 |
댓글