@seredaes

Как побороть проблему console.log в JavaScript?

8cc6e9785fae46be8b0e31aac35dbb97.png

Вот такая вот проблема.
Получаю в Angular форму. Присваиваю новой переменной объект. Меняю его.
перед этим всем вывожу форму в консоль. И...
В не развернутом состоянии показывает верное значение, в развернутом состояни, значение пароля иное.

console.log(this.signupForm.value);
this.test = this.signupForm.value;
this.test.userpassword_su = '123';

Парень на работе пояснил, что это с памятью связано, ссылка на одну и ту же ячейку идет.
В принципе суть я понял, но вопрос такой:
1. как в ангулар правильно все дебажить и куда выводить переменные, чтобы точно видеть ее состояние, а не этот баг?
2. Мне посоветовали делать не присвоение, а underscore.deepclone, как-то так (я еще не разбирался с этим) может что подскажите?

Заранее всем спасибо!!!
  • Вопрос задан
  • 349 просмотров
Решения вопроса 1
@Camaro67
Помог? - "Отметить решением"
Вот почитайте как работают объекты в JS.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@RidgeA
не надо бороться с console.log
Надо правильно пользоваться инструментами.

Есть дебагер, который позволяет поставить брейкпоинты в нужном месте кода, остановить код в процессе выполнения и посмотреть что храниться в переменной.

Если уж сильно приспичило вывести в консоль объект, в том состоянии, которе есть в момент вывода можно использовать console.log(JSON.stringify(object, null, 2))
Ответ написан
ozknemoy
@ozknemoy
яваскриптист
console.log слегка асинхронен и иногда показывает устаревшую инфу
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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