为什么以下代码会给我一个错误?
// In Foo.js
class Foo {
constructor(a) {
this.a = a;
}
}
module.exports = Foo
// In Index.js
var foo = new require('path/Foo.js')('param');
这给了我类构造函数Foo不能在没有'new'的情况下调用。
感谢。
答案 0 :(得分:3)
我相信在您的代码中,new
运算符应用于require()
函数,而不是require()
返回的运算符。就是这样:
var foo = new require('path/Foo.js')('param');
...就像这样做:
var foo = ( new require('path/Foo.js') )('param');
...或:
var temp = new require('path/Foo.js');
var foo = temp('param');
请尝试以下方法,以便将new
应用于您的班级:
var Foo = require('path/Foo.js');
var foo = new Foo('param');