1. Function 객체
ㅇ 자바스크립트 함수는, 내장형 객체(built-in object) 처럼 취급됨
* 즉, 타 프로그래밍 언어와 달리, 함수가 객체로써 취급됨
ㅇ 특징
- 자바스크립트 함수는, 일급 객체이며 동시에 일급 함수 임
- 값이 사용될 수 있는 곳이라면,
. 어디든지 함수 리터럴로 정의할 수 있으며,
.. (변수의 할당문, 객체의 프로퍼티, 배열의 요소, 함수 호출시 인수, 함수 반환문)
. 실행(접근)시에 함수 객체로 평가되어 생성됨
2. Function 객체의 프로퍼티,메소드
ㅇ 그 안에 그만의 독특한 프로퍼티,메소드가 있음
- 프로퍼티
. caller : 현재 실행중인 함수를 호출한 함수를 가리킴
. length : 함수의 매개변수 개수
. name : 함수명
. prototype : 포로토타입 객체의 참조
. arguments : 전달된 인수 목록에 대한 정보 (비 표준, 위 4개 프로퍼티로도 역할 가능)
.. 순회가능한(Iterable) 유사 배열 객체
.. 함수 내부에서 지역 변수 처럼 사용 가능 (함수 외부에서 접근 불가)
- 메소드
. apply()
. bind()
. call()
. constructor (생성자)
. toString()
ㅇ 특히,
- Function 생성자의 prototype 객체(Function.prototype)를 상속 받아 사용 가능
. 例) `__proto__`라는 접근자 프로퍼티는, Object.prototype 객체의 프로퍼티를 상속 받음