-
상속 - 객체지향 | 생활코딩Javascript/ECMAScript 2009 (ES5) 2020. 2. 9. 15:46반응형
[출처 : https://opentutorials.org]
상속(inheritance)이란?
객체는 연관된 로직들로 이루어진 작은 프로그램이라고 할 수 있다. 상속은 객체의 로직을 그대로 물려 받는 또 다른 객체를 만들 수 있는 기능을 의미한다. 기존의 로직을 수정하고 변경해서 파생된 새로운 객체를 만들 수 있게 해준다.
상속을 위한 기본적인 준비는 다음과 같다.
function Gundam(code){ this.code = code; } Gundam.prototype.code=null; Gundam.prototype.introduce = function(){ return "This is "+name; } var first = new Gundam("RX-78-2") console.log(first.introduce()); // This is RX-78-2
이제 상속을 해보자
function Gundam(code) { this.code = code; } Gundam.prototype.code = null; Gundam.prototype.intro = function(){ return "This is "+this.code; } function ArmoredCore(code){ this.code = code; } // 생성자(ArmoredCore)의 프로토타입(prototype)에 상속받고 싶은 객체(Gundam)를 할당 ArmoredCore.prototype = new Gundam(); // 상속 - 기능의 추가 // : ArmoredCore는 Gundam의 기능을 가지면서 Gundam에 없는 메소드 maker를 가지고 있다. ArmoredCore.prototype.maker = function(){ return "Kotobukiya makes "+this.code; } var nx04 = new ArmoredCore("Lineark White Glint") console.log(nx04.intro()); // This is Lineark White Glint console.log(nx04.maker()); // Kotobukiya makes Lineark White Glint
ArmoredCore라는 생성자를 만들었다. 그리고 이 생성자의 prototype과 Gundam의 객체를 연결했더니 ArmoredCore객체도 메소드 intro를 사용할 수 있게 되었다. ArmoredCore가 Gundam의 기능을 상속하고 있는 것이다.
단순히 똑같은 기능을 갖게 되는 것이라면 상속의 의의는 사라질 것이다. 부모의 기능을 계승 발전할 수 있는 것이 상속의 가치다.
반응형'Javascript > ECMAScript 2009 (ES5)' 카테고리의 다른 글
표준 내장 객체의 확장 - 객체지향 | 생활코딩 (0) 2020.02.10 prototype - 객체지향 | 생활코딩 (0) 2020.02.09 this - 객체지향 | 생활코딩 (0) 2020.02.09 전역객체 - 객체지향 | 생활코딩 (0) 2020.02.08 생성자와 new - 객체지향 | 생활코딩 (0) 2020.02.08