Javascript导出/导入类

Ala*_* P. 5 javascript import export ecmascript-6 babeljs

为什么下面这个例子没有输出"你好世界"?相反,我得到:

TypeError:_base2.default.test不是函数

(正在与Babel一起编辑)

file1.js

import Example from './file2';
console.log(Example.test());
Run Code Online (Sandbox Code Playgroud)

file2.js

export default class Example {
  test() {
    console.log('hello world');
  }
}
Run Code Online (Sandbox Code Playgroud)

Jam*_*Maa 12

您只导入该类,但不创建该类的实例

尝试

var myInstance = new Example()
myInstance.test()
Run Code Online (Sandbox Code Playgroud)


pra*_*tha 7

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

您可以将file2.js更改为

export default class Example {
  static test() {
    console.log('hello world');
  }
}
Run Code Online (Sandbox Code Playgroud)

然后通过使用类名调用它file1.js作为

import Example from './file2';
console.log(Example.test());
Run Code Online (Sandbox Code Playgroud)

如果您想将其作为实例方法调用,请参考James Maa的答案。