有没有办法从一行中的require创建一个新的Node对象?

时间:2018-02-14 23:55:14

标签: javascript node.js require

我们有一个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?,但是一旦我尝试运行代码,它们都会失败。

1 个答案:

答案 0 :(得分:2)

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

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

但请记住,您现在无法访问原始窗口小部件构造函数(在您的情况下,这可能会或可能不是一件坏事)。