我们有一个Node.js小部件,可以这样导出:
module.exports = ourWidget;
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?,但是一旦我尝试运行代码,它们都会失败。
答案 0 :(得分:2)
您可以通过将函数调用转移到包装外部的外部来实现此目的:
var ow = new (require('./ourWidget'))()
但请记住,您现在无法访问原始窗口小部件构造函数(在您的情况下,这可能会或可能不是一件坏事)。