자바스크립트로 프로그램을 구현할때 직접 구현하는 경우는 드문것 같아요.
인터넷상에 올라와 있는 코드소스를 복사해 와서 붙여넣기 한 다음에 화면으로 결과를 확인해서 만족스러우면 패스하는식으로 구현하지요.
그러다가 유투브에서 상급자 자바스크립트라는 동영상을 보게 되었는데 자바스크립트의 상속은 객체지향언어의 클레스에 의한 상속이 아니라 프로토타입에 의한 상속이라고 하더라구요.
그래서 찾아 보았죠.
자바라는 언어에서 상속을 구현하기 위해서는 객체의 틀이 되는 클래스를 만들고 이 클래스를 상속받아서 구현하는 식입니다.
객체는 상속된 클래스에 있는 생성자를 통해서 탄생하게 되지요.
그러면 자바스크립트에서 말하는 프로토타입 상속은 어떻게 되는 걸까요?
블로그에 올라와 있는 글을 한참 읽고 나서야 감을 잡을수 있었습니다.
객체(Object)는 프로토타입 객체를 가지고 있습니다. 이 객체는 생성자에 의해서 생성되는 객체에 상속이 가능한 구조입니다.
상속된 객체는 상위객체에 연결되는 프로토타입 링크가 생성됩니다.
상속된 객체에서 상위객체의 속성에 접근할 수 있는 구조입니다.
*** key point
1. 프로토타입 객체에 해당되기위해서는 함수객체가 생성되는 시점에 속성이 메소드가 있어야 합니다. 생성 이후에 추가된 것은 상속되지 않습니다. 상속하기 위해서는 object.prototype 에 직접 접근해서 생성해 주어야 합니다.
2. 프로토 타입에 있는 속성이나 메소드는 하위객체로 복사 되는 것이 아니라 공유되는 것입니다.
출처 : http://insanehong.kr/post/javascript-prototype/