私は、次を含むファイルがあります:別のファイルではモジュールのエクスポートを使用すると、クラス自体の代わりにインスタンスがエクスポートされるのはなぜですか? (コンストラクタをエクスポートする方法)
var Foo = function() {};
Foo.prototype.bar = function() { return "hello world" }
export default function() {
return new Foo();
}
を、私はそのようにようにこれをインポートすることができます。
import Foo from "./my_other_file.js";
var foo = new Foo();
console.log(foo.bar());
// => "hello world"
それが私にしばらく時間がかかりましたこれを稼働させる。私が混乱させた特定の事はexport default function() { return new Foo() }
です。私の最初の傾向はreturn Foo
でした(つまり、インスタンスの代わりにクラス自体を返します)。
クラスを2回初期化する必要はありません(エクスポート時とインポート後に1回)。私はこのタイプのものに出くわすのは初めてではありません - 継承を使うときにも見ました。
私の質問は - なぜこの場合ですか?それは私には直感的ではないようですので、それには正当な理由があることを期待しています。
最初に2つの機能がある理由はわかりません。 – zeroflagL
@zeroflagL私はあなたの混乱を本当に理解していません。どちらの機能は?どうして? –
'Foo'とエクスポートする関数です。後者はこの例では無意味です。 – zeroflagL