function Sau(e1, e2){
this.inside1 = e1;
this.inside2 = e2;
}
Sau.prototype.taste = function(){
return this.inside1+ ","+this.inside2
}
const sau = new Sau("pig","garlic");
console.log(sau)
function Fsau(e1,e2,e3){
this.inside1 = e1;
this.inside2 = e2;
this.inside3 = e3;
}
Fsau.prototype.taste = function(){
return this.inside1+ ","+this.inside2
}
Fsau.prototype.flavor = function(){
return this.inside3 +"ff"
}
const fsau = new Fsau("pig","garlic","fire");
fsau.taste();
fsau.flavor();
function Sau(e1, e2){
this.inside1 = e1;
this.inside2 = e2;
}
Sau.prototype.taste = function(){
return this.inside1+ ","+this.inside2
}
function Fsau(e1,e2,e3){
Sau.call(this, e1, e2)
this.inside3 = e3;
}
Fsau.prototype = Object.create(Sau.prototype)
Fsau.prototype.constructor = Fsau;
Fsau.prototype.flavor = function(){
return this.inside3 +"ff"
}
const fsau = new Fsau("pig","garlic","fire");
console.log(fsau.taste());
console.log(fsau.flavor());
정리
- call이나 apply를 이용하여 인스턴스를 인수로 전달하고 프로퍼티를 상속받는 방법을 생성자 훔치기 라고한다.
- Object.create()메소드를 통해 인스턴스의 [[Prototype]] 대상을 지정 할 수 있습니다.
- 자바스크립트에서는 상속받는 타입을 하위 타입(subtype), 상속하는 타입을 상위 타입(supertype)이라고 부릅니다.