title: self-invoking constructor in JS
body: <p>Since I want to enforce <em>new</em>, I create the constructor like following. It works fine, even I do NOT call the constructor with <strong><em>new</em></strong>, the instance can still get the property. But I confused that since in the if statement, it already <strong>return</strong>, why the statements below if statement can be invoked?</p>
  
  <pre><code>function Car(){
      if(!(this instanceof Car)){
          return new Car();
          console.log("can i arrive here?");
      }
      this.tires = "I have four tires";
      console.log("yeah,I can arrive here");
  }
  
  //Note: without new
  var car = Car();//output=&gt; yeah,I can arrive here
  console.log(car.tires);//output =&gt; I have four tires
  </code></pre>