現在、独自のファイルにそれぞれ4つの子クラスがあります。私はそれらをすべて同じファイルで要求しています。これら4つのクラスすべてを1つのモジュールに含めることができるかどうか疑問に思っています。現在、私はそれらをこのようにインポートしています
var Jack = require('./Jack.js');
var JackInstance = new Jack();
var Jones = require('./Jones.js');
var JonesInstance = new Jones();
このようにインポートしたい
var People = require('./People.js');
var JackInstance = new People.Jack();
あるいは
var Jack = require('./People.js').Jack;
var JackInstance = new Jack();
私のクラスは次のように定義されています
class Jack{
//Memeber variables, functions, etc
}
module.exports = Jack;
次のように複数のクラスをエクスポートできます。
例えばPeople.js
class Jack{
//Member variables, functions, etc
}
class John{
//Member variables, functions, etc
}
module.exports = {
Jack : Jack,
John : John
}
そして、あなたが正しく述べたようにこれらのクラスにアクセスします:
var People = require('./People.js');
var JackInstance = new People.Jack();
var JohnInstance = new People.John();
destructuring assignments (Node.js v6.0. からネイティブにサポートされています)を使用して、これをより短い形式で行うこともできます。
// people.js
class Jack {
// ...
}
class John {
// ...
}
module.exports = { Jack, John }
インポート:
// index.js
const { Jack, John } = require('./people.js');
または、エイリアスの割り当てが必要な場合は、次のようにします。
// index.js
const {
Jack: personJack, John: personJohn,
} = require('./people.js');
後者の場合、personJack
およびpersonJohn
はクラスを参照します。
警告の言葉:
予期しないエラーが発生しやすいという意味で、破壊は危険な場合があります。 export
の中括弧を忘れたり、誤ってrequire
に含めることは比較的簡単です。