Javascript导出/导入类

时间:2017-09-22 04:20:21

标签: javascript import ecmascript-6 export babeljs

为什么下面这个例子没有输出“hello world”?相反,我得到了:

  

TypeError:_base2.default.test不是函数

(正在与Babel一起编辑)

file1.js

import Example from './file2';
console.log(Example.test());

file2.js

export default class Example {
  test() {
    console.log('hello world');
  }
}

2 个答案:

答案 0 :(得分:9)

您只是导入了类,但没有创建类的实例

尝试

var myInstance = new Example()
myInstance.test()

答案 1 :(得分:4)

如果要将方法作为类方法调用(不创建对象实例),可以尝试静态方法。

您可以将 file2.js 更改为

export default class Example {
  static test() {
    console.log('hello world');
  }
}

然后使用 file1.js 中的类名作为

来调用它
import Example from './file2';
console.log(Example.test());

如果您想将其称为实例方法,请参阅James Maa answer。