본문 바로가기

🔥 🔥

JavaScript 일급 객체 (first class citizen)

반응형
일급객체란?
다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가리킨다. 보통 함수에 매개변수로 넘기기, 수정하기, 변수에 대입하기와 같은 연산을 지원할 때 일급 객체라고 한다. (출처 : 위키)

 

쉽게 말해 특정 언어에서 객체를 값으로 취급하는 것을 말한다.

✅ 자바스크립트에서는 함수가 일급객체이다.

 

 

아래와 같은 조건을 만족하는 객체는 일급객체를 의미한다.

 

1. 변수나 상수에 저장 및 할당할 수 있어야 한다.

 

let fruits = function(){
    return "apple";
}

console.log(fruits);

 

 

2. 파라미터(객체의 인자)로 전달할 수 있어야 한다.

 

let fruits = function(){
    let apple = 10;
    return apple;
}

let box = function(value){
    console.log(value)
}

box(fruits());

 

 

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

 

function outer() {
   return function() {
       console.log("apple");
   }
}

let start = outer();
start();

 

 

4. 동적으로 프로퍼티 생성이 가능하다.

 

function fruits(){
    console.log("바구니가 비었습니다.")
}

fruits.apple = "사과";
fruits.banana = "바나나";

console.log(fruits.apple);
console.log(fruits.banana);

 

 

✅ 자바스크립트의 함수가 일급 객체이기 때문에 할 수 있는 것?

 

1. 고차 함수(forEach, filter, map, sort 등)

2. 클로저

3. 콜백 패턴