언어/JavaScript
[JS] 일급 객체(First Class Object), 일급함수(First Class Function)란?
모찌모찝
2022. 8. 24. 23:03
일급 객체란 무엇인가?
자바스크립트로 개발을 하다 보면 일급 객체와 일급 함수라는 말을 많이 듣는다.
일급 객체란 뭘까?

일급 객체(First Class Object)
일급 객체란 다음과 같이 설명할 수 있다.
다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가리킨다. 보통 함수에 매개변수로 넘기기, 수정하기, 변수에 대입하기와 같은 연산을 지원할 때 일급 객체라고 한다. - 출처: 위키
설명이 어렵다면 일급 객체의 특징을 아래의 예시로 한번 보자
1. 변수(variable)에 담을 수 있다
let mozzi = function() {
return "HelloWorld";
}
console.log(mozzi());
변수 mozzi의 경우 HelloWorld가 출력된다.
2. 파라미터로 전달할 수 있다
let mozzi = function(){
let me = 10;
return me;
}
let devlog = function(param){
console.log(param);
}
devlog(mozzi());
mozzi를 호출하게 되면 10을 반환한다.
아래의 devlog에 파라미터로 mozzi를 넣어 10이 출력된다.
3. 함수의 반환 값으로 사용할 수 있다
function mozzi(){
return function(){
console.log("HelloWorld");
}
}
let test = mozzi();
test();
4. 동적으로 프로퍼티 생성이 가능하다
function test(){
console.log("HelloWorld");
}
test.me = "mozzi";
test.you = "developer";
console.log(test.me);
console.log(test.you);
출력은 mozzi와 developer가 출력된다.
일급 함수(First Class Function)란?
일급 함수란 함수를 일급 객체로 취급하는 것을 말한다. 자바스크립트의 경우 함수도 객체로 표현하기 때문에 일급 객체 및 일급 함수라고 부른다.
자바스크립트가 일급 객체이기 때문에 아래와 같은 것들을 할 수 있다.
콜백함수
고차 함수(High-order function)
클로저(Closure)
콜백함수,고차함수, 클로저에 대해서는 다음 포스팅에서 적도록 하겠다.
Reference
https://developer.mozilla.org/ko/docs/Glossary/First-class_Function