title: How to overload constructors in JavaScript ECMA6?
body: <h2>Objective</h2>
  
  <p>Implement a mechanism to allow constructor overload in JavaScript ECMA6</p>
  
  <h2>Why this is not a duplicate</h2>
  
  <p>The topic <a href="https://stackoverflow.com/questions/32626524/why-javascript-es6-doesnt-have-multi-constructor-class">Why doesn&#39;t JavaScript ES6 support multi-constructor classes?</a>, although similar is not the same as this one. The other topic merely focuses on a constructor overloading using the <strong>old</strong> ECMAScript versions, while this topic focuses on ECMA6. If you are looking for an updated answer, this is the place.</p>
  
  <h2>Background</h2>
  
  <p>I have a JavaScript class with a given constructor, and I want the user to be able to have different constructors when instantiating an object. An example of what I pretend could be the following:</p>
  
  <pre><code>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);
      }
  }
  </code></pre>
  
  <p>In this code, the user has three constructors he can use, each one taking a different amount of parameters. An usage example follows:</p>
  
  <pre><code>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
  </code></pre>
  
  <h2>Problem</h2>
  
  <p>This is a straightforward example if one is using Java or C#, because those languages have constructor overloads. </p>
  
  <p>However, from the <a href="https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Classes" rel="noreferrer">documentation on classes from MDN</a> one can conclude that JavaScript does not.</p>
  
  <h2>Question</h2>
  
  <ol>
  <li>Is there a way to implement a similar mechanism for JavaScript classes using ECMA6? If not, what is the best/closest alternative?</li>
  </ol>