Это вторая статья про наследование в JavaScript , первая статья здесь . В данной статье мы обсудим наследование статических методов в JavaScript .

Наследование в 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.