티스토리 뷰
함수는 객체이므로 일반 객체와 동일하게 동작한다.
즉, 함수 객체는 내부 슬롯과 내부 메서드를 모두 가지고 있다.
일반 객체와 다른 점은 함수는 호출할 수 있다는 부분이다.
function test() {}
test(); // [[Call]] 호출
new test(); // [[Construct]] 호출
함수가 일반 함수로 호출되면 내부 메서드 [[Call]]이 호출되며
new 연산자와 함께 호출되면 내부 메서드 [[Construct]]가 호출된다.
1. Call
[[Call]]을 갖는 함수 객체를 callable이라 한다.
callable은 호출할 수 있는 객체인 함수를 말한다.
호출할 수 없는 객체는 함수 객체가 아니기 때문에 함수 객체는 반드시 callable이어야한다.
모든 함수 객체는 내부 메서드 [[Call]]을 갖고 있기 때문에 호출 가능한 것이다.
2. Construct
내부 메서드 [[Construct]]를 갖는 객체를 constructor,
[[Construct]]를 갖지 않는 함수 객체를 non-constructor라고 부른다.
constructor는 생성자 함수로서 호출할 수 있는 함수이며,
non-constructor는 객체를 생성자 함수로서 호출할 수 없는 함수를 의미한다.
모든 함수 객체가 [[Construct]]이진 않다.
3. 결론
모든 함수 객체는 호출 가능하나 모든 함수 객체를 생성자 함수로서 호출할 수 있는 것은 아니다.
'Oops, All Code! > 📝 Study Notes' 카테고리의 다른 글
[React] 사용자 인터페이스(UI) (0) | 2023.03.09 |
---|---|
[JS] constructor와 non-constructor의 구분 (0) | 2023.03.09 |
[JS] 생성자 함수 인스턴스 생성 과정 (0) | 2023.03.07 |
[JS] 생성자 함수와 객체 리터럴의 차이 (0) | 2023.03.06 |
[JS] 생성자 함수 (0) | 2023.03.05 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 소사벌맛집
- 책추천
- 어휘력
- 플리마켓운영
- 카드뉴스
- 어른의어휘공부
- 코딩테스트
- 트러블슈팅
- 안성스타필드
- 프리코스
- javascript
- 비즈플리마켓
- 플리마켓후기
- 도서추천
- 프론트엔드
- 일급객체
- 소사벌
- js
- 타입좁히기
- 대학생플리마켓
- 우아한테크코스
- 프로토타입
- 회고
- 카페추천
- 대학생팝업스토어
- react
- typescript
- 도서리뷰
- 서평
- 경험플리마켓
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함