함수의 자료형
js에서 함수는 값으로 취급한다고 했다. 그러면 자료형은 무엇일까?
함수는 호출이 가능한 행동 객체
이다.
함수는 호출 할수도 있으며 객체처럼 함수에 프로퍼티를 추가/제거하거나 참조를 통해 전달할 수도 있다.
함수 객체의 프로퍼티
name : 함수의 이름을 반환하고 익명 함수라도 자동으로 할당이 된다.
익명함수나 기본값을 이용해 자동 할당으로 해주는데 이를
contextual name
이라고 한다.하지만 적절한 이름을 추론하는 게 불가능 한 상황은
빈 문자열
이 저장된다.length : 함수의 매개변수의 개수
다형성
: 인수의 종류에 따라 인수를 다르게 처리하는 방식
커스텀 프로퍼티 : 함수에 자체적으로 만든 프로퍼티를 추가가 가능하다
클로저
를 이용하여 외부에서 함수 내부의 변수를 bind하여 제어 할 수 있게 하였는 데, 커스텀 프로퍼티를 이용하면 외부에서 값을 수정이 가능하다.하지만, 프로퍼티는 변수
let
과 관계가 전혀 없다. 변수가 아니다.
기명 함수 표현식
함수 선언식이 아닌 함수 표현식방식에 익명함수가 아닌 이름을 붙인 함수를 생성시 함수 내부에 자기 자신을 호출 할 수 있다.
하지만 함수 표현식의 함수를 독립적으로 사용은 불가능하다.
Last updated