I noticed not all the Javascript functions are constructors.
var obj = Function.prototype;
console.log(typeof obj === \'function\'); //true
obj(); //OK
new
As an addition to Felix Kling's answer, even if a function is not constructable, we can still use it like a constructor if it has a prototype property. We can do this with the help of Object.create(). Example:
// The built-in object Symbol is not constructable, even though it has a "prototype" property:
new Symbol
// TypeError: Symbol is not a constructor.
Object.create(Symbol.prototype);
// Symbol {}
// description: (...)
// __proto__: Symbol