[Javascript]class extends

이대희·2021년 2월 11일
0
post-thumbnail

extends를 사용하면 프로토타입과 같이 class를 확장시켜 사용할 수 있다.
extends를 클래스 상속이라 부른다.

Case1

class Animal {
  constructor(name) {
    this.speed = 0;
    this.name = name;
  }
  run(speed) {
    this.speed = speed;
    console.log(`${this.name} 는 속도 ${this.speed}로 달립니다.`);
  }
  stop() {
    this.speed = 0;
    consoloe.log(`${this.name} 가 멈췄습니다.`);
  }
}

let animal = new Animal("동물");

Animal 클래스를 만들고 클래스 안에 construction 함수를 만든다. construction은 기본으로 객체를 설정하는 메서드이므로 다른 함수에 값을 전달해준다.

그래서 우리가 필요한 함수메서드를 그때마다 호출하여 animal.stop() 처럼 사용할 수 있다.

class Rabbit extends Animal {
  hide() {
    alert(`${this.name} 이/가 숨었습니다!`);
  }
}

let rabbit = new Rabbit("토끼");

rabbit.run(5); // 토끼 는 속도 5로 달립니다.
rabbit.hide(); // 토끼 가 숨었습니다!

위 처럼 Rabbit extends Animal를 사용하게 되면 "기존에 만든 Animal 클래스에 rabbit 클래스를 연장한다"라고 생각할 수 있다. 객체나 함수에서 사용하던 프로토타입과 같이 클래스 상속이라 생각하면 된다.

Animal에 hide()를 이어붙여 Rabbit이라는 클래스를 만들었다. 생성자 함수로 만들어 rabbit변수에 저장하고 원하는 값을 매서드로 호출하여 출력할 수 있다.

참조:https://ko.javascript.info/class-inheritance

0개의 댓글