这两个版本根本不同。
这个:
new (require('./file')).func('r1');执行需求,返回的输出,
./file然后 对结果 调用新的运算符。
这个:
var r2 = new require('./file').func('r2');调用需要作为构造函数。
让我们看一个更孤立和简单的例子:
new Date() // creates a new date objectnew (Date()) // throws a TypeError: string is not a function



