#node.js #es6-class
#node.js #es6-класс
Вопрос:
У меня есть два класса one и two
class One {
constructor(field1, field2) {
this.field1 = field1;
this.field2 = field2;
}
}
module.exports = one;
class Two {
constructor(field11, field22, list) {
this.field11 = field11;
this.field22 = field22;
this.list = list;
}
add(one) {
this.list.push(one);
}
}
module.exports = Two;
Третий класс импортирует оба класса
const one= require('./one.js');
const two= require('./two.js');
Теперь у меня есть функция, которая создает объект второго класса и добавляет некоторые значения, такие как,
two = new two();
two.add(new one(1,1000));
two.add(new one(2,2000));
console.log(two.list);
////список — это коллекция объектов первого класса
До этого момента все работает нормально, я получаю коллекцию
Мой запрос заключается в том, как выполнить итерацию по коллекции, например, я хочу получить доступ two.list[0].field1
// не удается получить свойство field1
Ответ №1:
Попробуйте это:
class One {
constructor(field1, field2) {
this.field1 = field1; this.field2 = field2;
}
}
class Two {
constructor(field11, field22, list = []) {
this.field11 = field11; this.field22 = field22;
this.list = list
}
add(one) {
this.list.push(one);
}
}
two = new Two();
two.add(new One(1, 1000));
two.add(new One(2, 2000));
console.log(two.list);
Ответ №2:
В коде есть некоторые проблемы:
- Именование и скобка неправильно закрываются
- Параметр списка по умолчанию также записан в неправильном формате
class One {
constructor(field1, field2) {
this.field1 = field1;
this.field2 = field2;
}
}
class Two {
constructor(field11, field22, list = []) {
this.field11 = field11;
this.field22 = field22;
this.list = list;
}
add(one) {
this.list.push(one);
}
}
two = new Two();
two.add(new One(1,1000));
two.add(new One(2,2000));
console.log(two.list[0].field1);
Обновил ваш код. Попробуйте запустить это
Комментарии:
1. Моя проблема в том, что теперь я могу получить доступ к свойству field1, используя list [i], я не получаю свойство при вводе ‘.’, intellisense не показывает список свойств в классе one, где, поскольку добавление элементов в список работает правильно и может видеть список, two.list
2. Есть вероятность, что в intellisense произошла какая-то неправильная настройка. Ознакомьтесь с документацией редактора