커링
- 반환값이 함수인 디자인 패턴을 말함
- 중복된 코드를 반복적으로 입력하지 않고 원하는 기능을 조합하여 언제든지 사용할 수 있음
- 커링을 사용하는 이유 :
- 함수의 재활용 때문
- 함수의 재활용 예시 :
└ ⓐ : multiply() 함수를 재활용하여 a에 2를 곱한 값을 반환함function multiply(a, b) { return a * b; } function mulitplyTwice(a) { return multiply(a, 2); } // ⓐ function multiplyX(x) { return function(a) { return multiply(a, x); } } // ⓑ const multiplyX = x => a => multiply(a, x); // ⓒ
└ ⓑ : 인자 x를 받아 이름 없는 함수를 반환하고,
이름 없는 함수는 다시 인자 a를 받아 multiply(a, x)를 실행한 값을 반환함
└ ⓒ : ⓑ의 코드를 화살표 함수로 표현함