객체 지향 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.)