У меня есть основания полагать, что console.log
и JSON.stringify
могут создавать противоречивые представления одного и того же объекта, даже если он был создан простым манера (см. примечания).
Ситуация
И в инструментах разработчика Google Chrome, и в Firebug у меня был объект obj
, который console.log
распечатал как {игроки: {0:. ..}, ...}
, а JSON.stringify
сообщил о {player: {}, ...}
. obj.players
был {}
под обеими функциями, поэтому кажется, что виноват console.log
. Может ли он быть каким-то образом асинхронным / недетерминированным?
Дополнительные примечания
Боюсь, я не смогу предоставить намного больше контекста, так как код длинный и для клиента, но я могу попробовать если есть что-то, что может помочь разобраться в этом. На данный момент я вынужден держаться подальше от console.log
для проверки.
Было бы полезно знать, что объект формируется просто из литерала объекта, задав свойства вручную, например, obj.players = {}; obj.players [0] = ...
.
Код
Пример того, что я имею в виду, можно увидеть на http://jsfiddle.net/9dcJP/ .