Object Oriented - Inheritance

Jan 31, 2019


상속을 통해 객체의 로직을 그대로 물려받는 또 다른 객체를 만들 수 있다.

function Person(name) {
    this.name = name;
}
Person.prototype.name = null;
Person.prototype.introduce = function () { return 'My name is ' + this.name; };
var p1 = new Person('llstaaar');
console.log(p1.introduce());
function Programmer(name) {
    this.name = name;
}
Programmer.prototype = new Person();
// prototype이라는 특수한 Property에 상속받을 객체를 생성하여 대입하면 Person 객체의
// prototype property의 정보들을 갖고 객체를 생성하여 넘겨주는 방식

Programmer.prototype.coding = function () { return 'Hello, World!'; };
// prototype property를 통해 새로운 property나 method들을 추가해줄 수 있다.

var p2 = new Programmer('llstaaar');
console.log(p2.introduce());
  • Prototype (원형) : 이 property는 어떤 용도가 약속되어 있는 특수한 property이기 때문에 prototype에 저장되어 있는 속성들은 생성자를 통해서 생성된 객체에 연결된다.
  • Prototype Chain : 이러한 prototype에 의한 상속이 얽혀있는 관계를 의미한다. property의 value를 찾는 과정은 자기 자신을 생성한 객체의 property -> prototype -> 부모의 property -> 부모의 prototype 값을 갖고 있는 property를 찾을 때까지 역순으로 찾아 나간다.