Является ли конструктор обязательным в классе в JavaScript?

Я читаю о классе JavaScript из раздела документации Mozilla в 'Тело класса и определения методов'. В разделе конструктора указано, что

Метод конструктора — это специальный метод для создания и инициализации объекта, созданного с помощью класса. В классе может быть только один специальный метод с именем "конструктор". Синтаксическая ошибка будет выброшена, если класс содержит более одного вхождения метода конструктора. Конструктор может использовать ключевое слово super для вызова конструктора суперкласса.

Из приведенного выше утверждения я могу подтвердить, что у нас не может быть более одного конструктора. Но в нем не упоминается, является ли конструктор обязательным в объявлении/выражении класса в JavaScript.


person Andrew Lam    schedule 07.02.2018    source источник


Ответы (2)


Вы должны просто написать класс без конструктора и посмотреть, работает ли он :)

Из same docs

Как уже говорилось, если вы не укажете метод конструктора, будет использоваться конструктор по умолчанию. Для базовых классов конструктор по умолчанию:

constructor() {}

Для производных классов конструктор по умолчанию:

constructor(...args) {
  super(...args);
}
person Suresh Atta    schedule 07.02.2018
comment
Спасибо за указание, я не знал, что в документации Mozilla есть страница специально для конструктора, моя ошибка :) - person Andrew Lam; 07.02.2018
comment
Да, вы можете просто протестировать эти вещи, но для людей, которые читают, быстрее использовать Google, чем проверять это вручную. Так что хорошо, что он спросил в первую очередь. - person J. Schei; 16.03.2020

Нет, не нужно. По умолчанию конструктор определяется как:

constructor() {}

Для наследования мы используем этот конструктор для вызова суперкласса как:

constructor() {
    super.call()
}
person Pramod Kumar    schedule 26.09.2018