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 в таком случае как ты пишешь нет клонирования, там просто проставляется ссылка на исходный объект.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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