Наследование в JavaScript ES6 статических методов
Это вторая статья про наследование в JavaScript, первая статья здесь. В данной статье мы обсудим наследование статических методов в JavaScript.
Производный класс наследует все статические члены базового класса:
class Product {
constructor(name, price, tax) {
this.name = name;
this.price = price;
this.tax = tax;
}
get Price() {
console.log(`стоимость этого товара с налогом в \$${this.tax}% -\$${this.price * (1+ this.tax)} `);
}
static className() {
console.log('продукт');
}
}
class Computer extends Product {
constructor(name, price, tax) {
super(name, price, tax);
}
factory() {
console.log('Dell');
}
}
Как видно класс Product имеет статический метод className(), и этот метод доступен как Product.helloWorld().
Product.helloWorld(); // Привет мир
Расширение встроенных типов
JavaScript позволяет расширять встроенные типы, такие как Array, String, Map, Set и т. д. через наследование. Следующий класс Queue расширяет ссылочный тип Array. Синтаксис здесь намного проще, чем была бы реализация Queue с использованием шаблона конструктора/прототипа.
class Queue extends Array {
enqueue(e) {
super.push (е);
}
dequeue() {
return super.shift();
}
peek() {
return !this.empty() ? this[0] : undefined;
}
empty() {
return this.length === 0;
}
}
var customers = new Queue ();
customers.enqueue('А');
customers.enqueue('B');
customers.enqueue('C');
while (!customers.empty ()) {
console.log (customers.dequeue ());
}
В этой статье вы узнали, как реализовать наследование в JavaScript с использованием ключевых слов super и extends.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.