web-dev-qa-db-ja.com

JavaScriptエクスポート/インポートクラス

以下の例で「hello world」が出力されないのはなぜですか?代わりに、私は得ています:

TypeError:_base2.default.testは関数ではありません

(それはバベルで蒸散されている)

file1.js

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

file2.js

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

クラスをインポートするだけで、クラスのインスタンスを作成しない

試す

var myInstance = new Example()
myInstance.test()
16
James Maa

(オブジェクトインスタンスを作成せずに)メソッドをクラスメソッドとして呼び出す場合は、静的メソッドを試すことができます。

file2.jsを次のように変更できます。

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

次に、file1.jsのクラス名を使用して、次のように呼び出します。

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

インスタンスメソッドとして呼び出す場合は、 James Maa の回答を参照してください。

10
prabushitha