객체 리터럴에 의한 객체 생성의 문제점
- 단 하나의 객체만 생성해야 함
- 동일 프로퍼티를 갖는 여러 개의 객체를 생성해야 하는 경우 매번 같은 프로퍼티를 기술해야 하므로 비효율적
생성자 함수를 사용한 객체 생성
function Circle(radius){
this.radius = radius;
this.getDiameter = function() {
return 2*this.radius;
};
}
const circle1 = new Circle(5);
const circle2 = new Circle(10);
인스턴스 생성 과정
JS엔진은 암묵적 처리를 통해 인스턴스 생성하고 반환
1. 인스턴스 생성과 this 바인딩
- 암묵적으로 빈 객체 생성
- 빈 객체 = 인스턴스는
this
에 바인딩
2. 인스턴스 초기화
- 생성자 함수에 기술되어 있는 코드가
this
에 바인딩 되어 있는 인스턴스를 초기화
- 프로퍼티나 메서드를 추가하는 것, 생성자 함수가 인수로 전달받은 초기값을 인스턴스 프로퍼티에 할당하는 등
3. 인스턴스 반환