Tiddo Langerak (2017-01-05T18:04:09.000Z)
forbes at lindesay.co.uk (2017-01-08T05:33:59.087Z)
I don't think it is possible to call the constructor as a function. However, in JavaScript a class is just an object (unlike C# or Java, where it's meta data), which means that you can pass it around and dynamically extend it. E.g. you can intercept class creation like this: ```js function enhanceClass(c) { return class EnhancedClass extends c { constructor() { //do your magic here } } } class MyClass {} const EnhancedMyClass = enhanceClass(MyClass); new EnhancedMyClass(); ``` As for `toString` & not being able to call a function directly: `toString` is already overwriteable, and in ES5 code it wasn't uncommon to throw from a constructor if it wasn't called as one (for good reasons). ES6 classes just do that for you.