티스토리 뷰
1. 객체 리터럴의 문제
단 하나의 객체만 생성하므로 동일한 프로퍼티를 갖는 객체를 여러개 생성해야할 때 비효율적이다.
const square1 = {
side: 3,
getArea() {
return this.side*this.side;
}
};
console.log(square1.getArea()); // 9
const square2 = {
side: 5,
getArea() {
return this.side*this.side;
}
};
console.log(squre2.getArea()); // 25
문제는, 객체마다 프로퍼티 값이 다를 수 있지만 메서드가 동일한 경우가 많다는 사실이다.
예시로 정사각형을 표현한 square1과 square2는 프로퍼티 구조가 동일하다.
이런 경우 객체 리터럴은 구조가 동일함에도 매번 같은 프로퍼티와 메서드를 기술해야한다.
이를 대비하기 위해 생성자 함수가 나왔다.
2. 생성자 함수의 편의
생성자 함수를 이용하면 여러 개의 객체를 간편하게 생성 가능하다.
이를 통해 프로퍼티 구조가 동일한 객체 여러 개를 간편하게 생성했다.
function Square(side) {
// this는 생성자 함수가 생성할 인스턴스를 가리킨다.
this.side = side;
this.getArea = function() {
return this.side * this.side;
};
}
const square1 = new Square(3);
const square2 = new Square(5);
생성자 함수가 생성한 객체는 인스턴스라고 부른다.
this
this는 객체 자신의 프로퍼티나 메서드를 참조하기 위한 변수이다.
this가 가리키는 값은 함수 호출 방식에 따라 동적으로 결정된다.
생성자 함수로 호출된 경우, this가 가리키는 값은 생성자 함수가 생성할 인스턴스이다.
'Oops, All Code! > 📝 Study Notes' 카테고리의 다른 글
[JS] 내부 메서드 [[Call]]과 [[Construnct]] (0) | 2023.03.08 |
---|---|
[JS] 생성자 함수 인스턴스 생성 과정 (0) | 2023.03.07 |
[JS] 생성자 함수 (0) | 2023.03.05 |
[React] 한 학기 공부 계획 (0) | 2023.03.01 |
[JS] var과 let, const (0) | 2023.01.13 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- 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 |
글 보관함