일급 함수와 일급 객체

일급 객체

  1. 모든 요소는 함수의 실제 매개변수가 될 수 있다.
  2. 모든 요소는 함수의 반환 값이 될 수 있다.
  3. 모든 요소는 할당 명령문의 대상이 될 수 있다.
  4. 모든 요소는 동일 비교의 대상이 될 수 있다.

추가

  • 정수와 실수처럼 가장 간단한 스칼라 자료형은 대부분 일급 객체이다.
  • C에서 배열 및 문자열은 일급 객체에 해당하지 않는다
    • C에서는 배열을 할당할 수 없다
    • C에서는 함수의 매개 변수로 배열의 첫 주소값을 전달할 뿐, 배열의 크기는 분실한다

일급 함수

  • 어떤 함수가 일급 객체 / 다른 변수와 동일하게 다루어 질때, 일급 함수라고 지칭
  • 파이썬과 자바스크립트의 함수

변수에 할당

const foo = function() {
   console.log("foobar");
}
// 변수를 사용해 호출
foo();

인자로 전달

function sayHello() {
   return "Hello, ";
}
function greeting(helloMessage, name) {
  console.log(helloMessage() + name);
}
// `sayHello`를 `greeting` 함수에 인자로 전달
greeting(sayHello, "JavaScript!");

함수를 반환

function sayHello() {
   return function() {
      console.log("Hello!");
   }
}

출처

Categories: ,

Updated: