티스토리 뷰
※상속 형태 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 번 순으로 상속이구나를 직관적으로 알수 있는것 같다.
'language > javascript' 카테고리의 다른 글
[node.js] 1.대략적인 이해 (0) | 2020.03.24 |
---|---|
함수 사용에 따른 함수 내의 변수들의 범위 (0) | 2018.11.29 |
객체를 생성하는 3가지 방법 (0) | 2018.11.29 |
Math.random()을 이용한 난수 생성 (0) | 2018.11.28 |