일급객체의 조건은 아래의 4가지이다.
1. 무명의 리터럴로 생성할 수 있다. 즉, 런타임에 생성이 가능하다
2. 변수나 자료구조에 저장이 가능하다.
3. 함수의 매개변수로 전달이 가능하다.
4. 함수의 리턴값으로 사용이 가능하다.
자바스크립트의 함수는 위 4가지 조건에 만족하므로 일급객체다.
함수도 근본은 객체이므로 객체처럼 사용이 가능하며, 프로퍼티를 가진다.
arguments
: 모든 인수들의 정보를 가지는 유사배열 프로퍼티length
: 매개변수의 개수를 가지는 프로퍼티name
: 함수명을 가지는 프로퍼티__proto__
: [[Prototype]]
의 접근자 프로퍼티 ( 이후에 자세히 설명 )