일급 객체 & 고차함수

hzn·2022년 9월 20일
0

JavaScript

목록 보기
11/17
post-thumbnail

함수 : 대표적인 일급 객체

  • 변수에 할당(assignment) 할 수 있다.
    => 함수를 데이터처럼 다룰 수 있다. (배열의 요소나 객체의 속성값으로 저장할 수 있다)
  • 다른 함수의 전달인자(argument)로 전달될 수 있다.
  • 다른 함수의 결과로서 리턴될 수 있다.

고차 함수

  • 함수를 전달인자(argument)로 받을 수 있는 함수( = 콜백함수가 인자로 있는 함수) 혹은 함수를 리턴할 수 있는 함수( = 커링함수)
function double(num) {
  return num * 2;
}

function doubleAdder(added, func) {
  const doubled = func(added);
  return function (num) {
    return num + doubled;
  };
}
  • 함수 doubleAdder고차 함수
  • 함수 doubleAdder의 인자 func는 함수 doubleAdder콜백 함수
doubleAdder(5, double)(3); // -> 13
  • 함수 double이 함수 doubleAdder의 콜백으로 전달됨
  • doubleAdder(5, double)는 함수이므로 함수 호출 기호()를 사용할 수 있음.
const addTwice3 = doubleAdder(3, double);
addTwice3(2); // --> 8
  • doubleAdder리턴하는 함수변수에 저장할 수 있음 (일급 객체)

콜백 함수(callback function)

  • 다른 함수(caller)의 전달인자로 전달되는 함수.
  • 어떤 작업이 완료되었을 때 호출하는 경우가 많음..
  • 콜백 함수를 전달받은 고차함수(caller):
    함수 내부에서 이 콜백함수를 호출(invoke)할 수 있고, 조건에 따라 콜백 함수의 실행 여부를 결정할 수도 있다. 아예 호출하지 않을 수도, 여러번 실행할 수도 있다.

커링 함수

  • 함수를 리턴하는 함수

0개의 댓글