Question

The two following lines of code should do exactly the same thing. The first one is a bit more verbose, but this should be the only difference. Still, the 2nd example results in an error. Why?

The following works:

var Model = require('./Model');
new Model();

However, the following results in Uncaught Error: Cannot find module './Model'

new require('./Model')();
Was it helpful?

Solution

It has to do with the operator precedence. If you do this, it will work:

new (require("./Model"))();

What was happening is:

(new require("./Model"))()
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top