함수는 객체이다. 따라서 메서드와 프로퍼티를 가진다.
모든 함수에 공통인 프로퍼티는 length 와 prototype이다.
length : 함수가 넘겨받을 것으로 예상하는 이름 붙은 매개변수의 숫자
prototype : 모든 참조 타입의 인스턴스 메서드가 존재하는 곳.
toString(), valueOf() 같은 메서드가 존재 한다.
apply(), call() 이라는 함수의 메서드가 있다. 이 둘 모두 소유자인 함수를 호출하면서 this를 넘긴다.
apply() 메서드의 경우 - 첫번째 인자로 this, 두번째 인자로 arguments 또는 Array의 인스턴스를 넘긴다.
call() 메서드는 모든 기능이 apply() 메서드와 같고, 다만 두번째 인자로 arguments 나 Array가 아닌 매개변수를 나열해야 한다.
apply(), call()의 주요 기능은 this(실행 컨텍스트)를 바꾸는 데 있다.
bind() : 새 함수 인스턴스를 만드는데, 그 this는 bind()에 전달된 값이다.
'프론트엔드 개발자를 위한 자바스크립트 프로그래밍 공부 > 5장 참조타입' 카테고리의 다른 글
원시 래퍼 타입 (1) | 2019.02.07 |
---|---|
함수의 내부 구조 - arguments, this, caller (0) | 2019.01.29 |
값처럼 쓰이는 함수 (1) | 2019.01.25 |
함수 타입 (0) | 2019.01.25 |
RegExp 생성자 프로퍼티 (0) | 2019.01.24 |