반응형
커링은 하나 이상의 매개변수를 가진 함수를 단일 인수를 갖는 함수들의 함수열로 바꾸는 기법을 말한다.
이 커링 기법을 사용하면, 인자들을 지금 현재 다 받지 않아도 함수 형태로 계속 전달할 수 있고, 인자들을 쪼갤 수 있어 공통 인자가 있는 함수들을 그 인자를 생략한 채 사용할 수 있다는 장점이 있다.
common => func1(a, common);
common => func2(b, common);
common => func3(c, common);
이렇게 세 함수가 같은 인자를 받아 실행하는 함수라면 커링을 통해 common 을 생략하고 바로 부를 수 있다.
func1(a);
func2(b);
func3(c);
이외에도 인자의 갯수가 줄어 unit test 가 편리하고 가독성이 높아진다는 장점이 있다.
커링 함수를 자바스크립트 버전으로 표현하면 다음과 같다.
const curry = func => function curried(...args) {
if (args.length >= func.length) return func.apply(this, args);
return (...args2) => curried.apply(this, args.concat(args2));
};
간단하다.
원래 함수의 인자가 모두 들어오기 전까지는 지금까지의 인자들을 더해 Wrapper 함수로 전달 후 Wrapper 함수를 리턴하고 모든 인자가 들어오면 원래 함수를 호출한다.
반응형
'언어 > Javascript' 카테고리의 다른 글
[JS] 일급함수 (0) | 2023.02.10 |
---|---|
[JS] 비동기 클린 코드과 에러 핸들링 (0) | 2023.02.02 |