Цель
Реализовать механизм, разрешающий перегрузку конструктора в JavaScript ECMA6.
Почему это не дубликат
Тема Почему JavaScript ES6 не поддерживает классы с несколькими конструкторами?, хотя подобный не такой, как этот. В другом разделе рассматривается только перегрузка конструктора с использованием старых версий ECMAScript, а в этом разделе рассматривается ECMA6. Если вы ищете обновленный ответ, это место.
Фон
У меня есть класс JavaScript с заданным конструктором, и я хочу, чтобы пользователь мог иметь разные конструкторы при создании экземпляра объекта. Примером того, что я притворяюсь, может быть следующее:
const DEFAULT_WHEEL_NUMBER = 4;
const DEFAULT_COLOR = "black";
const DEFAULT_NAME = "myCar";
class Car{
constructor(numberWheels, aName, aColor){
this.wheelsNum = numberWheels;
this.name = aName;
this.color = aColor;
}
constructor(aName){
this(DEFUALT_WHEEL_NUMBER, aName, DEFAULT_COLOR);
}
constructor(){
this(DEFUALT_WHEEL_NUMBER, DEFAULT_NAME, DEFAULT_COLOR);
}
}
В этом коде у пользователя есть три конструктора, которые он может использовать, каждый из которых принимает разное количество параметров. Ниже приведен пример использования:
var car1 = new Car(3, "tricicle-car", "white");
var car2 = new Car("Opel"); //creates black car with 4 wheels called Opel
var car3 = new Car(); //creates a black car, with 4 wheels called myCar
Проблема
Это простой пример, если вы используете Java или C#, потому что эти языки имеют перегрузки конструктора.
Однако из документации по классам из MDN можно сделать вывод, что JavaScript нет.
Вопрос
- Есть ли способ реализовать аналогичный механизм для классов JavaScript с помощью ECMA6? Если нет, то какая лучшая/ближайшая альтернатива?
object: int
- person Soldeplata Saketos   schedule 07.07.2016