//생성자 함수
const User = function (name, age){
this.name = name;
this.age = age;
//this.showName = function() {
// console.log(this.name);
//};
};
User.prototype.showName = function (){
console.log(this.name);
};
const mike = new User("Mike", 30);
class User2 {
constructor(name, age) { //constructor: 객체를 만들어주는 생성자 메소드
this.name = name;
this.age = age;
}
showName(){ //클래스 내에 정의된 메소드는 User2의 프로토타입에 저장된다.
console.log(this.name);
}
}
const tom = new User2("Tom", 19);
*Class: 상속
//extends
class Car {
constructor(color){
this.color = color;
this.wheels = 4;
}
drive() {
console.log("drive..");
}
stop() {
console.log("STOP!");
}
}
class Bmw extends Car{
park(){
console.log("PARK");
}
}
const z4 = new Bmw("blue");
*Class: 메소드 오버라이딩(method overriding)
class Car {
constructor(color){
this.color = color;
this.wheels = 4;
}
drive() {
console.log("drive..");
}
stop() {
console.log("STOP!");
}
}
class Bmw extends Car{
park(){
console.log("PARK");
}
stop(){
super.stop(); //super.메소드명을 사용하여 부모 클래스에 정의된 메소드들을 사용할 수 있다.
console.log("OFF")
}
}
const z4 = new Bmw("blue");
반응형
'Javascript' 카테고리의 다른 글
자바스크립트 중급 17 - async, await (0) | 2023.06.21 |
---|---|
자바스크립트 중급 16 - 프로미스(Promise) (0) | 2023.06.21 |
자바스크립트 중급 14 - 상속, 프로토타입(Prototype) (0) | 2023.06.16 |
자바스크립트 중급 13 - call, apply, bind (0) | 2023.06.14 |
자바스크립트 중급 12 - setTimeout / setInterval (1) | 2023.06.14 |