일급 객체(First-Class Object)란 무엇일까?


일급 객체란 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가리킨다. 몬말이지?? 일급객체의 특징을 살펴보자

뭔말인지 모르겠다. 예제로 살펴보자

파라미터로 전달할 수 있다.

var fn = function() { return "First Class Object";}
getFunction(fn); //First Class Object라는 문자열이 아닌 fn함수 자체가 인자로 전달됨

반환값으로 사용할 수 있다, 변수나 데이터 구조 안에 담을 수 있다.

var fn = function() {
	return function { return "First Class Object"); } // 반환값으로 사용할 수 있다.
}

var fn2 = fn1; // 변수나 데이터 구조 안에 담을 수 있다.

console.log(fn2()());

할당에 사용된 이름과 관계없이 고유한 구별이 가능하다.

var fn = function f2() { return "First Class Object"; }
fn(); // f2라는 함수명으로 선언했지만, fn으로 사용 가능