1. Class Based Inheritance.

Child라는 생성자 함수로 생성된 객체들이

Parent라는 생성자 함수의 Property 들을 갖도록 함.

이 방식을 사용하면 부모 객체의 prototype에 추가된 property와 method 들과(ex. say())

부모 객체의 property (ex. this.name) 까지 전부 상속받게 된다.

inherit() 함수를 이용한 상속을 그림으로 보면 아래와 같다.

이 방식의 단점

1. 부모의 property까지 모두 상속받는 다는 점

2. 원치 않게 부모의 property를 덮어씌울 위험이 있다.

3. 부모 생성자를 사용할 수 없다.

1-1. get parent's instance

1-2. Class Based Inheritance, Use Parent’s Constructor.

부모가 가진 모든 Property + prototype에 대한 참조를 전부 상속받는다.

Java와 가장 유사한 방식

단점 : 부모 생성자를 2번 호출한다.

1-2. Parent's constructor


1-3. Class Based Inheritance, Prototype Sharing.

상속받으려는 부모의 Prototype을 공유하는 방법.

단점 : 자식이나 손자가 Prototype을 수정할 경우, 부모에 영향을 미친다.

1-3. Prototype Sharing

출처 : Javascript Patterns, O’Reilly