Почему при изменении значений свойств объекта предыдущие консоли выводят настоящее?
Есть консоль лог стоящая перед функцией, после мы запускаем функцию, где меняем значения свойств объекта, но консоль лог, который был до всего этого почему-то отображает данные не того, каким был объект до изменения, а уже измененным.
Почему так и как этого избежать?
Это фича браузера. Можно 1) выводить в консоль строку JSON.stringify 2) Выводитьв консоль копию объекта, но пересобирать его нужно рекурсивно
(spread илиObject.assign)
Пробовал var copyObj = Object.assign({}, obj);
Ниже идёт функция, которая меняет значения свойство obj, но в copyObj уже попадает измененные значения, хоть она и выше функции изменения.
Lynn «Кофеман», там измененный объект уже сохраняется.
У меня вопрос больше по тому, почему функция, которая стоит и выполняется ниже всего кода, меняет объект быстрее, чем мы до неё пытаемся сделать его копию или вывести его данные.
Владимир, функция в которой он меняется, синхронная, вызывается тоже в синхронной, а вот приходит он из асинхронной.
Но сама суть, что мы имеем одну функцию.
Где сперва мы копируем объект!
А через одну строку его изменяем и выходи так, что в строке выше мы не скопировали оригинальный объект, а уже измененный.