如何导出ES6类并在另一个模块中构造它的实例?

时间:2017-04-25 21:07:30

标签: javascript node.js ecmascript-6

使用Node.js版本7.7.2,我想从这样的模块定义和导出ES6类:

// Foo.js
class Foo {
    construct() {
        this.bar = 'bar';
    }
}
module.exports = Foo;

然后将该类导入另一个模块并构造所述类的实例,如下所示:

// Bar.js
require('./foo');
var foo = new Foo();
var fooBar = foo.bar;

但是,此语法不起作用。我正在尝试做什么,如果是这样,实现这个的正确语法是什么?

感谢。

2 个答案:

答案 0 :(得分:6)

您必须使用常规节点模块语法。

您的示例代码中有一些错误。首先,class不应该跟()。此外,类构造函数应为constructor而不是construct。请查看以下foo.js以获取正确的语法。

<强> foo.js

class Foo {
  constructor () {
    this.foo = 'bar';
  }
}

module.exports = Foo;

<强> bar.js

const Foo = require('./foo');

const foo = new Foo();

console.log(foo.foo); // => bar

答案 1 :(得分:-1)

// Foo.js
export class Foo() {
    construct() {
        this.foo = 'bar';
    }
}

通知关键字EXPORT