// prototype 상속
// 자바스크립트에는 클래스의 개념을 제공하지 않는다.
// 상속을 통해 중복되는 코드는 부모클래스에 정의하고 자식클래스에 상속시키자.
//부모클래스
function Parent() {
this.a = 10;
this.b = 100;
this.c = "홍길동";
this.d = "이순신";
}
Parent.prototype.parentMethod = function() {
console.log(this.a);
console.log("부모클래스 메서드");
}
//------------------------------------------------------------------------------------------
//자식클래스A
function ChildA(){
}
//Parent 상속 // 상속을 통해 상위 프로토타입으로 연속해서 이어지는 관계 (프토토타입 체인)
ChildA.prototype = new Parent();
ChildA.prototype.childMethod = function() { //childMethod
console.log("A클래스메서드")
}
//------------------------------------------------------------------------------------------
//자식클래스B
function ChildB(){
}
//Parent 상속
ChildB.prototype = new Parent();
ChildB.prototype.childMethod = function() { //childMethod
console.log("B클래스메서드")
}
//------------------------------------------------------------------------------------------
//객체생성
var child_a = new ChildA();
var child_b = new ChildB();
//프로퍼티 메서드 접근
console.log(child_a.c); //'홍길동'
child_a.parentMethod(); //'부모클래스 메서드'
child_a.childMethod(); //'A클래스메서드'
console.log(child_b.d); //'이순신'
child_b.parentMethod(); //'부모클래스 메서드'
child_b.childMethod(); //'B클래스메서드'

// 객체리터럴을 통한 상속
var Parent = {
a : 10,
b : 20,
c : "홍길동",
d : "이순신"
}
// Parent 객체의 맴버들이 obj객체에 prototype에 연결된다.
var obj = Object.create(Parent);
console.log(obj);


반응형
Posted by 힘없는염소