私はアクセルRauschmayerでthis articleを読み、そして具体的には以下のsentencs疑問を抱いた。commonjsの「元のエクスポートオブジェクト」はどういう意味ですか?
Node.jsのスタイル単一値の輸出は動作しません。 Node.jsで module.exports = function(){...} モジュールAでこれを実行した場合、エクスポートされたオブジェクトを使用することはできませんが、 オブジェクトの代わりに の値をエクスポートできます。 Bの変数aはまだ がAの元のエクスポートオブジェクトを参照しているため、モジュールBの関数が機能します。
"Aの元のエクスポートオブジェクト"とはどういう意味ですか?
これは、その文のNodeJSではなく、CommonJSシステムを指しています。元のエクスポートオブジェクトは、 'module.exports = function {...}'を実行したときに上書きしようとしたオブジェクトです。言い換えれば、 'B'では' A'の 'module.exports'のプロパティに*割り当てなければ' A'をインポートしません。 NodeJSでは、 'module.exports'があればそれに直接割り当てられた値を取得します。コメントのために@squintを –
ありがとう。 'export'に関してNodejsとCommonJSとの間に違いはありますか? 'Node.jsでは、次のようにオブジェクトの代わりに単一の値をエクスポートすることができます:module.exports = function(){...}これをモジュールAで行った場合、モジュールBのエクスポートされた関数 ' – Blake
申し訳ありませんが、私は上記の私のコメントで少しだと思います。これは周期的な依存関係を指しているので、私は、あなたがその状況で何をインポートするのかに限界があると言っていると思います。したがって、 'module.exports'を、BをAにインポートしたBをインポートしたAの値で上書きすると、BはAより上書きされた' exports'値にアクセスすることができません。上書きされたので、上書きされた値ではなく、元の値である 'module.exports'を取得します。 –