Front-end/JavaScript
JS FP 6편 - 부분 적용 함수(Partial Application)
파리외 개발자
2023. 3. 11. 18:24
부분 적용과 커링의 차이
커링
//Currying
const add = (a, b, c) => a + b + c;
const curriedAdd = (a) => (b) => (c) => a + b + c;
curriedAdd(1)(2)(3); //currying expect one arg at time
커링은 한 번에 하나의 인자를 전달하는 것이 원칙이다.
또한 마지막 인자가 완성되기까지 원본함수인 add는 대기한다.
부분적용
//Partial Application
const add = (a, b, c) => a + b + c;
const partialAdd5 = add.bind(null, 1);
partialAdd5(2, 3); //second call expect all the arg
부분 적용은 호출 때마다 원본함수인 add가 실행된다.
또한 두 번째 실행 때 나머지 인자들을 모두 전달해야 한다.
또 bind 등으로 이뤄졌기 때문에 this값에 영향을 받는 obj내부의 메서드에서 사용이 힘들다.