프로토타입(prototype)

상속의 구체적인 수단인 prototype에 대해서 알아보자.

prototype은 말 그대로 객체의 원형이라고 할 수 있다. 함수는 객체이므로 생서자로 사용될 함수도 객체다. 객체는 속성(property)를 가질 수 있는데, prototype이라는 속성은 그 용도가 약속되어 있는 특수한 속성이다. prototype에 저장된 속성들은 생성자를 통해서 객체가 만들어질 때 그 객체에 연결된다.

//prototype chain
function Ultra() {}
Ultra.prototype.ultraProp = true;

function.Super() {}
Super.prototype = new Ultra();

function.Sub() {}
Sub.prototype = new Super();

var o = new Sub();
console.log(o.ultraProp);//o라는 객체는 sub로부터 생성된 것인데 ultraProp가 없기 때문에 상위 객체로 올라간다.

생성자는 기본적으로 함수인데, 생성자로 함수를 호출할 때는 객체를 만들어 변수에 할당한다.이렇게 객체를 할당받으면, 변수와 메소드들을 상속받아 그 자체를 담을 수 있다.

Last updated