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