title: What is the reason ES6 class constructors can't be called as normal functions?
body: <p>ES6 class constructors can't be called as normal functions. According to ES6 a <code>TypeError</code> should be raised when this is done. I used to think that classes were just syntactic sugar for a constructor function + functions in the prototype, but this makes it slightly not so.</p>
  
  <p>I'm wondering, what was the rationale behind this? Unless I missed something, it prevents calling the function with a custom <code>this</code>, which could be desirable for some patterns.</p>