console.log
не делает клон вашего p
объекта, когда вы вызываете его.
Что происходит, так это то, что p.datestrshow
действительно не определено, когда вы console.log
, но к тому времени, когда вы развернете объект p
в консоли, он уже будет определен, и на консоли будет показано текущее состояниеобъекта p
с определением datestrshow
.
Вот тест, который вы можете выполнить в консоли:
var test = {a:'a'};
console.log( test ); // log to the console before we define 'b'
test.b = 'b';
Запустите этот код в консоли, а затем разверните объект, который былжурнал.Даже если мы четко определили b
после console.log
, оно все равно появляется, когда вы расширяете объект.