고차함수
고차 함수는 함수를 인자로 받거나 함수를 반환할 수 있는 함수를 일컫는다. 우리가 흔히 사용했던 배열의 forEach()
, map()
, reduce()
와 같은 함수가 대표적이다. 단적인 예를 들어서 forEach를 고차 함수 없이 작성한다면 아주 지저분해지는 것을 확인할 수 있다. 고차 함수는 이러한 경우를 간결하게 표현할 수 있어서 가독성을 높이고 모듈화에 장점이 있다.
// ----------------------- 고차 함수 없이 작성한 경우
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 10];
function someFn(el, i) {
return el * i;
}
for ( let i = 0, ilen = arr.length; i < ilen; i++)
someFn(arr[i], i);
// ----------------------- 고차 함수로 작성한다면
arr.forEach((el, i) => console.info(el * i));
나머지 코드가 사라진 것은 아니다. 지저분한 코드를 forEach
라고 하는 함수로 모듈화 시켜버렸기 때문에 프로그램의 어딘가에는 복잡한 코드가 구현되어 있을 것이다.