[TIL] 고차 함수

송현우·2022년 9월 20일
0

오늘의 공부

함수는 대표적인 일급객체이다. JS에서 함수는 다음과 같은 취급이 가능하다.

  • 변수에 할당이 가능하다.
  • 다른 함수의 전달인자로 전달될 수 있다.
  • 다른 함수의 결과로서 리턴될 수 있다.

변수에 함수를 할당 가능하여 배열의 요소나 프로퍼티의 값을 사용할 수 있다. 다른 함수를 인자로 받거나, 함수를 리턴하는 함수를 고차함수라고 한다.

function add5 (num) {
  return num + 5;
}

function added5num (func, num) {
  return func(5);
}

let output = added5num(add5, 5); // 10

added5num 함수는 함수를 인자로 받는 고차함수이다. 매개변수 func에 들어오는 함수는 콜백함수로 위의 예에서 add5는 added5num의 콜백함수이다. 위의 예시처럼 함수를 인자로 받거나, 함수를 리턴한다.

이런 함수의 특성을 사용한 filter, map, reduce 등 내장 고차함수들이 존재한다.

  • filter() 메소드는 논리(또는 특정 함수)를 지정해주고, 배열의 각 요소가 그 논리에 맞다면(true, 1) 배열에 담아 리턴한다.
  • map() 메소드는 논리에 의해 배열 요소를 다른 요소로 지정해 배열에 담아 리턴한다.
  • reduce() 메소드는 배열을 순회하며 지정한 함수에 따라 원하는 형태로 값을 리턴한다.

0개의 댓글