목차

1️⃣ 상속 (Inheritance)

2️⃣ super

3️⃣ proto, Object.create, Object.assign

4️⃣ call과 apply, 그리고 bind

5️⃣ Prototype과 proto, 그리고 프로토타입 체인(Prototype Chain)

1️⃣ 상속 (Inheritance)

그러나 이 방식을 사용하게 되면 서브 생성자 함수 PersonPlus를 이용해 생성한 새로운 객체에 생성자(constructor)를 확인 시, PersonPlus가 아닌 메인 생성자 함수 Person을 가리키게 된다.

Untitled

이를 방지하기 위해, PersonPlusprototype 속성에 있는 생성자(constructor) 속성을 자신으로 받도록 지정해줘야 한다.

즉, 서브 생성자 함수의 prototype 객체의 constructor 속성값을 자신으로 지정해줘야 한다.

**PersonPlus.prototype.constructor = PersonPlus;**

PersonPlus가 참조하는 prototype 객체는 현재 자신이 아닌 Object.create를 통해 메인 생성자 함수인 Personprototype을 본뜬 객체이므로, 해당 객체가 가진 생성자는 기존에 참조하고 있던 Person을 받아오고 있을 것이다.

그렇기 때문에 이런 식으로 서브 생성자 함수인 PersonPlus가 현재 prototype 객체의 생성자임을 가리키도록 지정해줘야 한다.