티스토리 뷰
일반 함수와 생성자 함수를 구분하기위해 생성자 함수는 첫 문자를 대문자로 기술한다.
이런 위험을 방지하는 또 다른 방법으로는 new.target이 있다.
생성자 함수가 new 연산자 없이 호출되는 것을 방지하기 위해 ES6에서는 new.target을 지원한다.
함수 내부에서 new.target을 사용하면 new 연산자와 함께 생성자 함수로 호출되었는지 확인할 수 있다.
생성자 함수로서 호출되었다면 new.target은 함수 자신을 가리킨다.
new 연산자 없이 일반 함수로서 호출된 함수 내부의 new.target은 undefined다.
// 생성자 함수
function Square(side) {
// new 연산자와 호출되지 않는 경우 new.target은 undefined다.
if(!new.target) {
return new Square(side);
}
this.side = side;
this.getArea = function() {
return this.side * this.side;
};
}
const square = Square(4);
console.log(square.getArea());
따라서 new.target을 사용해 new연산자와 생성자 함수로서 호출됐는지 확인할 수 있다.
또한, 생성자 함수로서 호출되지 않은 경우 재귀 호출을 통해 호출할 수 있다.
new.target은 IE(인터넷 익스플로어)에서는 지원하지 않는다.
'Oops, All Code! > 📝 Study Notes' 카테고리의 다른 글
[React] React의 탄생 (0) | 2023.03.12 |
---|---|
[JS] 빌트인 함수와 new 연산자 (0) | 2023.03.12 |
[React] react란? (0) | 2023.03.11 |
[JS] 생성자 함수와 일반 함수 차이 (0) | 2023.03.10 |
[React] 프레임워크와 라이브러리 차이 (0) | 2023.03.10 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 트러블슈팅
- 플리마켓후기
- 프로토타입
- 우아한테크코스
- 플리마켓운영
- 도서리뷰
- 소사벌
- 어휘력
- 회고
- react
- 비즈플리마켓
- 안성스타필드
- 소사벌맛집
- javascript
- 경험플리마켓
- 서평
- 카드뉴스
- js
- 일급객체
- 프리코스
- 프론트엔드
- 대학생팝업스토어
- 카페추천
- 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 |
글 보관함