SaveLolliPoP
@SaveLolliPoP
1 / 0 = ∞

Почему сервис angular кешируется?

Я делаю калькулятор. Сейчас пытаюсь разделить логику, чтобы юыло проще редактировать и расширять свой калькулятор.
Столнулся с одной проблемой, она не должна возникать в принцепи. Не могу найти причину.

Пример:
Есть основной сервис, который что то считает

first.service.ts
basefunction(obj) {
   var result = this.childrenservice.somefunction(obj);
   console.log(result)
}


children.service.ts
somefunction(obj) {
    obj['Inventory'] = this.Inventory; //делает копию объекта
    for (let y in details.Inventory) {
      details.Inventory[y]['count'] = 1; // Создает елемент равным 1
    }
   details.Inventory['ItogMonth'] = 123123; // Добавляем какой то итог.
}


При первом вызове функции нет проблем, создаются в первый раз елементы ItogMonth и count итп.
Но при новом вызове дочерней функции она уже имеет элемент ItogMonth и возникает ошибка,
ERROR TypeError: Cannot create property 'count' on number '123123'

хотя в obj не содержит ItogMonth. Делаю вывод что он кешируется где то в оперативной памяти. Почему это происходит?
  • Вопрос задан
  • 68 просмотров
Решения вопроса 1
@grinat
Он у тебя не делает копию объекта, а получает ссылку на него. В js в таком случае как ты пишешь нет клонирования, там просто проставляется ссылка на исходный объект.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы