티스토리 뷰

language/javascript

상속의 형태

그루아트 2018. 12. 1. 23:30

※상속 형태 3가지

function Car(name, speed)
{
    this.name  = name;
    this.speed = speed;
}
Car.prototype.drive = function()
{
    console.log(this.name + "는 " + this.speed + "km로 달린다.")
};
/*--------------------------------------------------
 *생성자 형태 1
--------------------------------------------------*/
function Suv(name, speed, fuel)
{
    this.fuel = fuel;
    Car.apply(name, speed);
}
/*--------------------------------------------------
 *생성자 형태 2
--------------------------------------------------*/
function Suv(name, speed, fuel)
{
    this.fuel = fuel;
    Car.call(name, speed);
}
/*--------------------------------------------------
 *생성자 형태 3
--------------------------------------------------*/
function Suv(name, speed, fuel)
{
    this.fuel = fuel;
 
    this.base = Car;
    this.base(name, speed);
}

/*--------------------------------------------------
 *자식의 prototype 함수를 정의하기 전에
 *부모 prototype을 자식에게 넣어주고,
 *자식 자기것의 constructor에 함수명을 넣어준다..
--------------------------------------------------*/
Suv.prototype = Car.prototype;
Suv.prototype.constructor = Suv;
 
//마지막으로 자식의 prototyp을 설정
Suv.prototype.run = function ()
{
    console.log(this.name + "는 " + this.fuel + "을 이용해서 " +  this.speed + "km로 달린다.");
};

let suv = new Suv("모하비"230"휘발유");
suv.drive(); //부모 호출
suv.run();   //자기꺼 호출
cs



개인적으로  3>2>1 번 순으로 상속이구나를 직관적으로 알수 있는것 같다.



공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함