@lohmag

Почему перезаписывается свойство класса JS?

почему может перезаписываться свойство this.process в конструкторе GraphMaker
for (let trunk in trunks) {
                if (trunks.hasOwnProperty(trunk)) {
                  let template = [];
                  process.name = trunk;
                  template.push({name: 'in', metric: trunks[trunk].input}, {name: 'out', metric: trunks[trunk].out});
                  let Graph = new GraphMaker($this.host);
                  Graph.updateDB(process, template);
                  Graph.render(process, '12h');
                }
              }

function GraphMaker(host) {
  this.host = host;
  const $this = this;
this.updateDB = function(process, metric) {
    this.process = process;
    this.metric = metric;
    let pathToDb = dbPath(process);
 console.log(this.process);
    fs.access(pathToDb, (err) => {
      console.log(this.process);
      if (err) {}
})


1 console.log
{ group: 'asterisk', name: 'E1-i3' }
{ group: 'asterisk', name: 'TEL-IP01' }
2 console.log
{ group: 'asterisk', name: 'TEL-IP01' }
{ group: 'asterisk', name: 'TEL-IP01' }

Т.е. для каждого прохода for создается отдельный инстанс контруктором, но все равно переменная внутри как то перезаписывается и после выполнения асинхронного действия уже остается последнее значение из перебора for, почему?
  • Вопрос задан
  • 200 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы