class

Оголошення класу створює новий клас із заданим ім'ям, на основі прототипного наслідування.

Ви також можете визначити клас, використовуючи вираз класу. Але, на відміну від виразу класу, оголошення класу не дозволяє повторне оголошення існуючого класу і викине помилку при спробі це зробити. 

Синтаксис

class name [extends] {
  // тіло класу
}

Опис

Тіло класу у оголошенні класу виконується у строгому режимі. Властивість constructor є необов'язковою.

Оголошення класу не виринають (на відміну від оголошення функцій).

Приклади

Просте оголошення класу

У наступному прикладі ми спочатку визначаємо клас на ім'я Polygon, далі розширюємо його, створюючи клас на ім'я Square. Зауважте, що ключове слово super() може використовуватись лише у конструкторах і має викликатись раніше, ніж використовується ключове слово this.

class Polygon {
  constructor(height, width) {
    this.name = 'Polygon';
    this.height = height;
    this.width = width;
  }
}

class Square extends Polygon {
  constructor(length) {
    super(length, length);
    this.name = 'Square';
  }
}

Спроба оголосити клас двічі

Повторне оголошення класу викидає помилку типу.

class Foo {};
class Foo {}; // Uncaught SyntaxError: Identifier 'Foo' has already been declared

Така сама помилка викидається, коли клас був визначений до використання виразу класу.

var Foo = class {};
class Foo {}; // Uncaught TypeError: Identifier 'Foo' has already been declared

Специфікації

Сумісність з веб-переглядачами

BCD tables only load in the browser

Див. також