Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.09.2014, 23:30
Новичок на форуме
Отправить личное сообщение для Syabrowka Посмотреть профиль Найти все сообщения от Syabrowka
 
Регистрация: 14.03.2012
Сообщений: 4

Ерунда с типами.
Даже не знаю, как и описать…
Есть объект. Его элементам скрипт в какой-то момент задаёт даты (объект moment из библиотеки moment.js), но в какой-то момент задаёт null.
В процессе отладки глюков вывожу в консоль этот объект и вижу такое чудо:

То есть, объект содержит два поля со значением null, но каждое из них при этом — объект moment??
Что это может быть?
Ответить с цитированием
  #2 (permalink)  
Старый 12.09.2014, 00:13
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,588

Объекты в js передаются по ссылке, консоль тоже работает с объектами по ссылке. Соответственно когда вы просматриваете содержимое объекта(стрелочкой) - вы смотрите его текущее содержимое, а в консоли отображается значение на момент вызова console.log(и то только в chrome, ff динамически меняет вывод на актуальный).
Пример:
function Moment(){}
var obj={
  checkIn: new Moment, 
  checkOut:new Moment
}
console.log(obj);
obj.checkIn = obj.checkOut = null


Сообщение от Aetae Посмотреть сообщение
Лично мне не слишком нравится такой подход в реализации console.log - удобнее и логичнее было бы при выводе делать полные копии переданных объектов на момент передачи. Наверное такой поход приводил к излишним расходам памяти или просто противоречил стилю js. Так или иначе теперь уже ничего не попишешь, просто надо учитывать, что в консоли мы увидим самое последнее состояние объекта, а не промежуточное.
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 12.09.2014, 00:27
Новичок на форуме
Отправить личное сообщение для Syabrowka Посмотреть профиль Найти все сообщения от Syabrowka
 
Регистрация: 14.03.2012
Сообщений: 4

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема з типами I_nub Events/DOM/Window 8 16.03.2013 17:50
Как работают операции сравнения > < == >= <= с различными типами данных? almac Общие вопросы Javascript 3 29.06.2012 14:07
Результать на ajax запрос какаято ерунда, вместо текста, почему? aRpi Общие вопросы Javascript 1 18.04.2011 13:13