有没有办法在一行中根据需求创建一个新的 Node 对象?

Is there a way to create a new Node object from a require in one line?

我们有一个像这样导出的 Node.js 小部件:

module.exports = ourWidget;

然后我将它导入到我们的 server.js 中,如下所示:

var ourWidget = require('./ourWidget');
var ow = new ourWidget;

这按预期工作,但是可以在一行中完成吗? EG:

var ow = new (require('./ourWidget'));

这个不行,我也试过这个:

var ow = new (require('./ourWidget')());

两者都类似于这个 SO 问题中的代码:How does require work with new operator in node.js?,但是当我尝试 运行 代码时,两者都失败了。

您可以通过将函数调用转移到包装括号之外来实现此目的:

var ow = new (require('./ourWidget'))()

但请记住,您现在无法访问原始小部件构造函数(这对您来说可能是坏事,也可能不是坏事)。