[JavaScript] 고차함수의 기초

Date:

카테고리:

태그:

고차함수란?

Higher Order Function, 함수를 인자로 받을 수 있고, 함수의 형태로 리턴할 수 있는 함수

관련 개념

  • 콜백 함수(callback function) : 다른 함수(caller)의 인자로 전달되는 함수
  • 커리 함수(Curry function) : 함수를 리턴하는 함수 (고차함수가 커리함수를 포함하는 개념)
let arr = [1, 2, 3];
// 배열의 filter 메소드는 함수를 인자로 받는 고차함수
// arr.filter를 실행하면 내부적으로 arr에 접근
arr.filter = function (arr, func) {
  const newArr = [];
  for (let i = 0; i < arr.length; i++) {
    // filter에 인자로 전달된 콜백 함수는 arr의 각 요소를 전달받아 호출
    // 콜백 함수가 true를 리턴하는 경우에만 새로운 배열에 추가
    if (func(arr[i]) === true) {
      newArr.push(this[i]);
    }
  }
  // 콜백 함수의 결과가 true인 요소들만 저장된 배열을 리턴
  return newArr;
};

JavaScript 카테고리 내 다른 글 보러가기

댓글 남기기