对象转储JavaScript

是否有一个第三方附加组件/应用程序或某种方式来执行JavaScript对象的脚本debugging器中的对象映射转储?

这是情况…我有一个方法被调用两次,并在每一次有所不同。 我不确定什么是不同的,但有一些是。 所以,如果我可以将窗口的所有属性(或者至lesswindow.document)转储到文本编辑器中,我可以将两个调用之间的状态与一个简单的文件diff进行比较。 思考?

Firebug + console.log(myObjectInstance)

 console.log("my object: %o", myObj) 

否则,你最终会得到一个string表示,有时会显示:

 [object Object] 

或者一些这样的。

 function mydump(arr,level) { var dumped_text = ""; if(!level) level = 0; var level_padding = ""; for(var j=0;j<level+1;j++) level_padding += " "; if(typeof(arr) == 'object') { for(var item in arr) { var value = arr[item]; if(typeof(value) == 'object') { dumped_text += level_padding + "'" + item + "' ...\n"; dumped_text += mydump(value,level+1); } else { dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n"; } } } else { dumped_text = "===>"+arr+"<===("+typeof(arr)+")"; } return dumped_text; } 

如果您使用的是Chrome,Firefox或IE10 +,为何不扩展控制台并使用

 (function() { console.dump = function(object) { if (window.JSON && window.JSON.stringify) console.log(JSON.stringify(object)); else console.log(object); }; })(); 

为简明,跨浏览器的解决scheme。

只要使用:

 console.dir(object); 

你会得到一个很好的可点击的对象表示。 适用于Chrome和Firefox

对于Chrome / Chromium

 console.log(myObj) 

或者是等同的

 console.debug(myObj) 

在Chrome中,点击3个点,然后点击更多工具,然后点击开发者。 在控制台上,inputconsole.dir(yourObject)。 点击此链接查看示例图片