объектный литерал JavaScript, значение / нет значения? - PullRequest
2 голосов
/ 25 марта 2011

Я использую

console.log(p);
console.log(p.datestrshow);

Однако вывод в консоли

console output

Почему оно не определено, когда оно явно нет?

<ч /> делает

for(i in p)
  console.log(i+': ', (typeof p[i] == 'function' ? 'function' : p[i]));

результат в enter image description here

1 Ответ

0 голосов
/ 25 марта 2011

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

...