함수와 일급 객체

Hyeon·2021년 10월 1일
0

일급 객체의 조건

  1. 변수나 자료구조에 저장할 수 있다.
  2. 함수의 매개변수에 전달할 수 있다.
  3. 함수의 반환값으로 사용될 수 있다.

1. 변수나 자료구조에 저장할 수 있다.

const pow = function (num) {
  return pow * pow;
};

함수는 무명의 리터럴로 생성할 수 있다. 런타임에 리터럴이 평가되어 객체가 만들어지고, 변수에 할당된다.

2. 함수의 매개변수에 전달될 수 있다.

const mul = function (num) {
  return num * num;
};

function cal(f, num) {
  return f(num);
}

cal(mul, 5); //25

cal함수의 인자로 mul 함수를 전달했다.

3. 함수의 반환값으로 사용될 수 있다.

function mul(a) {
  return function (b) {
    return a * b;
  };
}

mul(3)(4); //12;

일급 객체이기 때문에 할 수 있는 것

고차함수

고차함수란 다른 함수를 전달인자로 받거나 함수실행의 결과를 함수로 반환하는 함수이다.

위 조건을 설명하면서 선언한 함수들이 고차함수라고 할 수 있다. javascript 내장 고차함수로

filter, map, reduce등이 있다.

let arr = [5, 12, 6, 100, -5];
function tenOver(value) {
  return value >= 10;
}
arr.filter(tenOver); //12,100

콜백함수

function log(message, callback) {
  console.log(message);
  callback();
}

function complete() {
  console.log("complete");
}

log("message", complete);
//message
//complete

그 외에도 클로저, 커링 등 (추후 개별적으로 포스팅)

0개의 댓글