В NodeJS я создаю экземпляры двух объектов из двух разных классов, помещаю их в массив и затем отображаю их с помощью Array.map. Если я делаю все это в одном файле, он работает нормально. Однако, если я создаю объекты в другом файле и экспортирую / требую массив, он становится неопределенным.
//code from file ClassA.js:
exports.ClassA = class ClassA {
constructor(name) {
this.name = name;
}
}
//code from file ClassB.js
exports.ClassB = class ClassB {
constructor(name) {
this.name = name;
}
}
Этот способ работает:
//code from file index.js
const { ClassA } = require("./ClassA");
const { ClassB } = require("./ClassB");
const myClassItem1 = new ClassA('Class A Item');
const myClassItem2 = new ClassB('Class B Item');
const myArray = [];
myArray.push(myClassItem1, myClassItem2);
console.log('array', myArray); //returns: [ ClassA { name: 'Class A Item' }, ClassB { name: 'Class B Item' } ]
console.log(myArray.map(item => item.name)); //returns: [ 'Class A Item', 'Class B Item' ]
// Отделение создание экземпляра в другом файле не
//code from file items.js
const { ClassA } = require("./ClassA");
const { ClassB } = require("./ClassB");
const myClassItem1 = new ClassA('Class A Item');
const myClassItem2 = new ClassB('Class B Item');
const myArray = [];
myArray.push(myClassItem1, myClassItem2);
console.log(myArray); //returns: [ ClassA { name: 'Class A Item' }, ClassB { name: 'Class B Item' } ]
exports.myArray;
//code from file index.js
const { myArray } = require('./items');
console.log(myArray); //returns undefined
console.log(myArray.map(item => item.name)) //throws error