일급객체는 무명의 리터럴로 생성할 수 있다. 즉, 런타임 시 생성 가능하다.(표현식 말하는 것 같다)

변수나 자료구조에 저장가능 하다.

매개변수로 전달 가능하다.

반환값으로 사용 가능하다.

 

함수 객체의 프로퍼티는 argument, caller, length, name, prototype, __proto__ 로 구성된다.

 

argument는 함수 호출 시 전달된 인수들의 정보를 담고 있는 유사 배열 객체이다.

 argumet는 전달받은 인수를 순서대로 저장하며, 매겨변수를 초과해서 받은 인수 역시 저장을 한다. argument의 length 프로퍼티는 인수가 몇개인지 나타낸다. 그렇기 때문에 인수의 개수에 따라 동작을 달리하는 구조를 만들 때 유용하다.

 

caller 프로퍼티는 자신을 호출한 함수를 가리킨다. 호출한 함수가 없다면  null을 반환한다. 

 

lengh는 매개변수의 숫자를 나타낸다. argument의 lengh는 인수의 숫자이므로 주의하자.

 

name 프로퍼티 함수의 이름을 나타낸다. ES5에서는 함수이름이 없다면 빈 문자열을 값으로 받았으나 ES6부터는 함수를 가리키는 식별자를 값으로 같는다.

 

__proto__ 모든 객체는 [[Prototype]] 이라는 내부슬롯을 갖는다. __proto__는 [[Prototype]] 내부슬롯이 가리키는 프로토타입 객체 접근하기 위해 사용하는 접근자 프로퍼티다.

 

prototype 프로퍼티는 생성자 함수로 호출할 수 있는 함수 객체, 즉 constructor 만이 소유하는 객체다. 함수가 객체로 생성될 때 생성자 함수가 생성할 인스턴스의 프로토타입을 가리킨다. 

 

+ Recent posts