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