고차함수 (Higher-order function, HOF)
- 자바스크립트 함수는 일급 객체이므로 함수를 값으로 다룰 수 있습니다. 함수를 값으로 다룰 수 있다는 것은 함수를 인자로 전달하거나 함수를 반환할 수 있다는 것을 의미합니다. 이러한 함수를 고차함수라고 합니다.
const add = (x, y) => x + y;
const square = (x) => x * x;
const doSomething = (f, x, y) => f(x, y);
doSomething(add, 1, 2); // 3
doSomething(square, 2, 3); // 4
- 위 예제에서 doSomething 함수는 add 함수와 square 함수를 인자로 전달받아 함수를 실행합니다. 이처럼 함수를 인자로 전달받아 함수를 실행하는 함수를 고차함수라고 합니다.
고차함수는 왜 필요할까요?
- 고차함수는 함수를 인자로 전달받아 함수를 실행하는 함수입니다. 이를 통해 함수의 재사용성을 높일 수 있습니다. 함수의 재사용성을 높이면 코드의 중복을 줄일 수 있습니다. 코드의 중복을 줄이면 Human Error 가 감소하고, 유지보수가 쉬워집니다.