커리된 함수(Curried function)이란 여러 개의 매개변수를 받는 대신에 항상 정확히 하나의 매개변수를 받는 함수를 말한다.
예르들어 특정한 문자와 반복할 횟수를 입력받으면 반복한 횟수만큼 문자를 출력하는 함수가 있다.
const repeatWith = (character, count) => character.repeat(count);
console.log(repeatWith('*', 5)); // *****
repeatWith
함수는 두 개의 매개변수를 입력받는다. 이 함수를 매개변수를 하나만 받도록 수정하고, 매개변수를 받았을 때 값을 반환하는 것이 아닌 새로운 함수를 반환하는 함수로 해보자.
const repeatWith = (character) => (count) => character.repeat(count);
이렇게 된 함수를 커리된 함수
라고 부른다. 이제 커리된 함수를 이용해서 동일한 동작을 하도록 코드를 작성해보자.
const repeatWith = (character) => (count) => character.repeat(count);
const repeatStar = repeatWith('*');
console.log(repeatStar(5)); // *****
이렇게 매개변수를 하나만 받도록 함수를 작성했고, 매개변수를 다 채우기 전에 함수를 호출하면 해당 매개변수가 적용된 새로운 함수를 반환한다. 반환된 함수를 실행하면 전에 입력했던 변수를 함수가 가지고 있고 이 변수를 이용해서 함수가 동작한다.
자바스크립트로 직접 만들면서 배우는 - 자료구조와 알고리즘 강의 바로 가기
실습으로 마스터하는 OAuth 2.0: 기본부터 보안 위험까지 - OAuth 2.0 강의 바로 가기
기계인간 이종립, 소프트웨어 개발의 지혜 - Git 강의 바로 가기
코드숨에서 매주 스터디를 진행하고 있습니다. 메일을 등록하시면 새로운 스터디가 시작될 때 알려드릴게요!