[메모] Currying

mgm-dev·2020년 11월 29일
0
post-thumbnail

📚TL;DR

커링이란 다중 인수을 갖는 함수를 단일 인수를 갖는 함수들의 함수열로 바꾸는 것을 말한다. 커링을 통해 함수의 재사용성과 코드의 가독성을 증가 시킬 수 있다.


example

커링 미사용 시

function greet(greeting, name){
    console.log(greeting + , ", " + name);
}

커링 사용 시

function greet(greeting){
    return function(name){
        console.log(greeting + , ", " + name);
    }
}

const hello = greet("hello");
hello("world"); // 'hello, world'
hello("john"); // 'hello, john'

왜 사용 하는가?

  1. 함수의 재사용성 증가
  1. 코드 가독성 증가

example with ES6

const fullName = lastName => firstName => console.log(lastName + firstName); 

fullName('홍')('길동'); // 홍길동

const name = fullName('민'); 

name('경훈'); // 민경훈
name('경민'); // 민경민
name('경익'); // 민경익

&nbsp fullName 함수를 name이란 변수에 할당 했다. 이때 첫 번째 인자 lastName은 클로저를 통해 저장한다. name을 호출하면서 두번째 인자 firstName을 입력한다.

profile
never stop learning

관심 있을 만한 포스트

0개의 댓글

관심 있을 만한 포스트