객체 지향 JavaScript — 클래스 상속
지금 http://jauyeung.net/subscribe/에서 내 이메일 목록을 구독하십시오.
JavaScript는 부분적으로 객체 지향 언어입니다.
JavaScript를 배우려면 JavaScript의 객체 지향 부분을 배워야 합니다.
이 기사에서는 JavaScript 하위 클래스, 믹스인 및 다중 상속을 살펴보겠습니다.
서브클래싱
JavaScript 클래스에서 하위 클래스를 만들 수 있습니다.
예를 들어 다음과 같이 작성할 수 있습니다.
class Animal {
  constructor(name) {
    this.name = name;
  }
  speak() {
    console.log(`${this.name} speaks`);
  }
}
class Dog extends Animal {
  speak() {
    console.log(`${this.name} woofs`);
  }
}
const mary = new Dog('mary');
Animal 클래스를 생성합니다.speak 메서드는 Animal 클래스에 있습니다.Animal 메서드가 있는 Dog라는 speak의 하위 클래스를 만들었습니다.Dog 인스턴스를 생성하면 speak의 Dog 메서드가 사용됩니다.따라서 다음과 같이 작성하면
mary.speak();
우리는보다:
mary woofs
클래스의 수퍼클래스에 액세스하는 방법에는 여러 가지가 있습니다.
super()를 호출하여 슈퍼클래스를 호출하고 부모 생성자의 인수를 전달할 수 있습니다.또한
super.<parentClassMethod>를 호출하여 부모 클래스의 메서드를 호출할 수 있습니다.super.<parentClassProp>를 사용하면 상위 클래스 속성에 액세스할 수 있습니다.따라서 다음이 있는 경우:
class Parent {}
class Child extends Parent {
  constructor(name) {
    this.name = name;
  }
}
const child = new Child('james')
오류가 발생합니다.
Uncaught ReferenceError: Must call super constructor in derived class before accessing 'this' or returning from derived constructor
이는
super 의 속성을 설정하기 전에 부모 생성자를 호출하기 위해 먼저 this 를 호출해야 하기 때문입니다.constructor에서 Child를 생략하면 암시적으로 수행할 수 있습니다.우리가 가지고있는 경우 :
class Parent {}
class Child extends Parent {}
const child = new Child()
그러면 기본 생성자가 제공되므로 오류가 발생하지 않습니다.
기본값은 다음과 같습니다.
constructor(...args) {
  super(...args);
}
믹신
JavaScript는 단일 상속만 지원하므로 표준 JavaScript 구문을 사용하여 여러 클래스의 속성을 상속할 수 없습니다.
대신, 우리는 여러 클래스를 기능이 있는 하나로 구성해야 합니다.
우리는 쓸 수있다:
class Person {}
const BackgroundCheck = Tools => class extends Tools {
  check() {}
};
const Onboard = Tools => class extends Tools {
  createEmail() {}
};
class Employee extends BackgroundCheck(Onboard(Person)) {}
BackgroundCheck 클래스의 하위 클래스를 반환하는 Tools 클래스가 있습니다.따라서
Person는 Tools 함수에서 Onboard입니다.그리고
Onboard(Person)는 Tools 함수에서 BackgroundCheck입니다.이런 식으로
check 및 createEmail 메서드가 모두 있는 클래스를 반환하고 결과 클래스를 사용하여 Employee 하위 클래스를 만들 수 있습니다.결론
extends 키워드로 서브클래스를 생성할 수 있습니다.또한 클래스를 반환하는 함수를 만들고 여러 클래스에서 상속할 수 있도록 구성할 수 있습니다.
Reference
이 문제에 관하여(객체 지향 JavaScript — 클래스 상속), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aumayeung/object-oriented-javascript-class-inheritance-4aff텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)