purpose
Implement a mechanism to overload the constructor in JavaScript ECMA6
Why is this not a duplicate?
Topic Why does JavaScript ES6 not support classes with multiple constructors? , although this option does not coincide with this. Another topic focuses on constructor overloading using versions of older ECMAScript, while this section focuses on ECMA6. If you are looking for an updated answer, this is the place.
Background
I have a JavaScript class with a given constructor, and I want the user to be able to have different constructors when instantiating the object. An example of what I am doing might be as follows:
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); } }
In this code, the user has three constructors that he can use, each of which takes a different number of parameters. Usage example:
var car1 = new Car(3, "tricicle-car", "white"); var car2 = new Car("Opel");
Problem
This is a simple example if you use Java or C # because these languages โโhave constructor overloads.
However, from the documentation for classes from MDN, we can conclude that JavaScript does not work.
Question
- Is there a way to implement a similar mechanism for JavaScript classes using ECMA6? If not, what is the best / closest alternative?
javascript constructor ecmascript-6 overloading constructor-overloading
Flame_Phoenix
source share