상속은 이미 작성된 코드를 재사용하는 아주 훌륭한 방법이다. 객체지향 방법론으로 잘 설계된 프로그램은 상속 개념을 효율적으로 사용하고 있을 것이다.
자바스크립트의 상속
- 자바스크립트는 객체지향 언어이기 때문에 객체에 대한 상속을 나타내줄 수 있다.
예제
function Man(){
this.name = "Anonymous";
this.gender = "Man";
this.Run = function (){
return this.name+" is Running.";
}
this.Sleep = function () {
return this.name+" is Sleeping."
}
}
Man
속성을 가진 객체 생성
function SoccerPlayer (){
this.base = new Man();
this.name = "Anonymous Soccer Player.";
this.Run = function () {
// overriding 이 가능하다.
return this.base.Run();
}
this.Pass = function () {
return this.name+" is passing to other player!";
}
};
SoccerPlayer
속성을 가진 객체 생성
SoccerPlayer.prototype = new Man();
var player = new SoccerPlayer();
SoccerPlayer
의 원형은Man
이다.SoccerPlayer
로 객체화한다.
player.name; // Anonymous Soccer Player.
player.gender; // Man
player.Run(); // Anonymous is Running. 원형의 메소드를 실행한다.
player.Pass(); // Anonymous Soccer Player is passing to other player!
player.Sleep(); // Anonymous Soccer Player is Sleeping.
player.name
은SoccerPlayer
객체의 이름이 출력된다.player.gender
는 부모 클래스의 성별이 출력된다.player.Run()
는 부모 클래스의 함수를 호출하기 때문에 이름이Anonymous Soccer Player
가 아닌Anonymous
이다.player.Pass();
와player.Sleep();
은 자식클래스로 객체화 되었기 때문에 이름이Anonymous Soccer Player
이다.
출처 : https://qkrrudtjr954.github.io/javascript/2017/12/27/javascript-inheritance.html
'javaScript' 카테고리의 다른 글
[javaScript] 클라이언트 사이드 자바스크립트 (0) | 2018.07.29 |
---|---|
[javaScript] 자바스크립트의 콜백 함수 (0) | 2018.07.29 |
[javaScript] 자바스크립트의 특징 (0) | 2018.07.29 |
[javascript] 배열과 객체 (0) | 2018.07.29 |
[javascript] Hello World (0) | 2018.07.29 |