이번에도 예제가 있는데 별로 바뀐게 없습니다.
function Person(name){
this.name = name;
}
Person.prototype.name=null;
Person.prototype.introduce = function(){
return 'My name is '+this.name;
}
function Programmer(name){
this.name = name;
}
Programmer.prototype = new Person();
Programmer.prototype.coding = function(){
return "hello world";
}
var p1 = new Programmer('egoing');
document.write(p1.introduce()+"<br />");
document.write(p1.coding()+"<br />");
new Programmer('egoing') 객체를 만들었고
p1.introduce 이메소드를 peron이라는 객체안에 메소드를 통해서 실행됩니다.
person은 intriduce라고 하는 기능이 있고
programmer는 introduce라는 기능이 있고
coding이라는 기능을 가지고 있는데
Programmer.prototype.coding = function(){
return "hello world";
} 되어 있기 때문에 hello world가 출력됩니다.
function Person(name){
this.name = name;
}
Person.prototype.name=null;
Person.prototype.introduce = function(){
return 'My name is '+this.name;
}
function Programmer(name){
this.name = name;
}
Programmer.prototype = new Person();
Programmer.prototype.coding = function(){
return "hello world";
}
function Designer(name){
this.name = name;
}
Designer.prototype = new Person();
Designer.prototype.design = function(){
return "beautiful!";
}
var p1 = new Programmer('egoing');
document.write(p1.introduce()+"<br />");
document.write(p1.coding()+"<br />");
var p2 = new Designer('leezche');
document.write(p1.introduce()+"<br />");
document.write(p1.designer()+"<br />");
실행시키면 Myname is egoing
Myname is leezche
이 나옵니다.
person 이라는 부모와
progremmer 과 Desginer라는 객체가 person이라는 객체에게 상속받습니다.
person은 기본적으로 자기소개라는 기능이 있고
progremmer코징 Designe는 designer라는 메소드를 가지고 있으면서
person이라는 부모의 기능을 상속 받음으로서 확장하면서 자신의 맥락에 맞는 기능들을 추가할수 있습니다.
예를 들어 Myname is를 My nickname is 로 바꾸면
Mynickname is egoing hellow wolrd
Mycickname is leezche beautiful!
person을 상속받은 객체들이 가지고잇는
introduce 라는 메소드가 한꺼번에 수정이됩니다.
이 포스팅은 생활코딩을 보고 만들었습니다. egoing님 감사합니다.
'JAVASCRIPT' 카테고리의 다른 글
Object (0) | 2020.11.13 |
---|---|
표준 내장 객체의 확장 (0) | 2020.11.10 |
상속 과정편 (0) | 2020.11.09 |
apoly, call 과 this (0) | 2020.11.05 |
this 객체로서의 함수 (0) | 2020.11.05 |