Pet*_*ris 9 javascript firebug google-chrome-devtools
我有理由相信console.log
并且JSON.stringify
可以产生相同对象的不一致视图,即使它是以直接的方式创建的(参见注释).
情况
在谷歌浏览器开发者工具和Firebug的,我有一个对象obj
,其console.log
打印出来{ players: {0: ...}, ...}
,而JSON.stringify
报道{ players: {}, ...}
.obj.players
是{}
在这两种功能,所以它似乎console.log
是罪魁祸首.它可能在某种程度上是异步/非确定性的吗?
补充说明
我担心我无法提供更多的上下文,因为代码很长而且对于客户来说,但我可以尝试,如果有一些东西可以帮助深究这一点.目前,我被迫远离console.log
检查.
知道通过手动设置属性仅仅从对象文字形成对象可能是有用的,例如,obj.players = {}; obj.players[0] = ...
.
码
我的意思的样本可以在http://jsfiddle.net/9dcJP/上观察到.
Seb*_*ner 13
你为什么不用它console.dir(obj)
呢?或者使用console.log(obj)
然后点击输出/展开它?
当我尝试以下代码时:
var obj = {};
obj.players = {};
obj.players[0] = {color: "green"};
obj.players[1] = {color: "blue"};
obj.world = "xyz";
console.log(JSON.stringify(obj));
Run Code Online (Sandbox Code Playgroud)
我总是(Firefox,Chrome,Opera)得到这个作为输出:
{"players":{"0":{"color":"green"},"1":{"color":"blue"}},"world":"xyz"}
Run Code Online (Sandbox Code Playgroud)
此外,您的players
对象看起来实际上是一个数组.所以你应该更好地创建它.
更新:
我刚刚看到你添加了一个JSFIDDLE演示的链接,它players
在记录后立即清空对象.据我所知,所有的Web开发工具使用某种异步屏,这会导致一个空players
当使用对象console.log(obj)
或console.dir(obj)
.因此,Firebug通过正确显示对象来提供最佳效果console.dir(obj)
.
归档时间: |
|
查看次数: |
28976 次 |
最近记录: |