//생성자 함수
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");
반응형

+ Recent posts