상속 / 서브 타입 / 슈퍼 타입

Geonil Jang·2021년 7월 27일
0

code-js

목록 보기
5/7
post-thumbnail
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();

//ex)
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) // 생성자 훔치기 (constructor stealing)
  	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)이라고 부릅니다.
profile
takeaways

0개의 댓글