在Node.js中实例化javascript类

时间:2017-12-05 02:45:03

标签: javascript ecmascript-6

为什么以下代码会给我一个错误?

// 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'的情况下调用

感谢。

1 个答案:

答案 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');