<aside>
📌 자바스크립트의 함수는 일급 객체다.
</aside>
일급 객체
- 일급 객체의 조건
- 무명의 리터럴로 생성 가능
- 변수나 자료구조(객체, 배열)에 저장 가능
- 함수의 매개변수에 전달 가능
- 함수의 반환값으로 사용 가능
- 자바스크립트 함수 예시 → 일급 객체
- 함수가 일급 객체면?
- 함수는 값을 사용할 수 있는 곳이면 어디서든지 리터럴로 정의할 수 있고, 런타임에 함수 객체로 평가된다.
- 일반 객체처럼 함수의 매개변수에 함수를 전달할 수 있고, 함수의 반환 값으로도 사용할 수 있다.
- 함수형 프로그래밍을 가능케 한다.
함수 객체의 프로퍼티
- 일반 객체에는 없는, 함수 객체에만 있는 함수 고유의 프로퍼티
arguments
caller
length
name
prototype
Object.prototype
객체로부터 상속 받은 프로퍼티
1. arguments
- 함수 호출 시 전달된 인수를 저장하는 유사 배열 객체 (이터러블)
- 예시
2. length
3. name
- 함수의 이름을 나타내는 프로퍼티
- ES5와 ES6의 차이
4. proto 접근자 프로퍼티
- [[Prototype]] 내부 슬롯이 가리키는 프로토타입 객체에 접근하기 위해 사용하는 접근자 프로퍼티