[Javascript] 커링패턴

김땅주·2022년 3월 15일
0

Javascript

목록 보기
23/23
post-thumbnail

커링패턴

커링은 f(a, b, c)처럼 단일 호출로 처리하는 함수를 f(a)(b)(c)와 같이 각각의 인수가 호출이 가능하고 호출된 후 병합되도록 변환하는 것이다.

커링패턴은 함수를 반환하는 함수이다. 함수에 인자로 함수를 전달하면 새로운 기능이 추가된 새 함수를 반환한다. 즉, 중복되는 코드를 재활용할 수 있다.


const a = function(value){};

const b = currying(a); ///함수에 함수를 인자로 전달함 

예제)


function test1(a,b){
  return a*b;
}

function test2(c){
  return function(d){
    return test1(d,c);
  }
}

const foo = test2(2);//foo함수에 재활용할 수 있는 함수를 할당한다

foo(5); //10이 출력된다

여기서 test2의 인자가 어떻게 받는지 궁금해졌다.
console.log를 찍어본 결과, test2의 인자 c와 리턴 함수 인자 d는 차례대로 2와 5를 받는다. 아래에서 확인해보자


function test1(a,b){
  return a*b;
}

function test2(c){
  console.log(c) // 2가 출력
  return function(d){
    console.log(d) // 5가 출력 
    return test1(d,c);
  }
}

const foo = test2(2);

foo(5);

profile
일곱 번 넘어져도 여덟 번 일어나면서 성장하는 프론트 개발자입니다

0개의 댓글

Powered by GraphCDN, the GraphQL CDN