对象转储JavaScript

时间:2009-04-14 20:35:18

标签: javascript

是否存在第三方加载项/应用程序或某种方式在JavaScript脚本的脚本调试器中执行对象映射转储?

情况就是这样......我有一个被调用两次的方法,并且每次都有不同的东西。我不确定有什么不同,但事情是。所以,如果我可以将窗口的所有属性(或者至少是window.document)转储到文本编辑器中,我可以用简单的文件差异来比较两个调用之间的状态。想法?

9 个答案:

答案 0 :(得分:124)

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

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

[object Object]

或其他一些。

答案 1 :(得分:62)

Firebug + console.log(myObjectInstance)

答案 2 :(得分:43)

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;
}

答案 3 :(得分:40)

如果你使用Chrome,Firefox或IE10 +,为什么不扩展控制台并使用

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

用于简明的跨浏览器解决方案。

答案 4 :(得分:22)

只需使用:

console.dir(object);

您将获得一个不错的可点击对象表示。适用于Chrome和Firefox

答案 5 :(得分:12)

适用于Chrome / Chromium

console.log(myObj)

或等同于

console.debug(myObj)

答案 6 :(得分:4)

为了更好的可读性,您可以将对象转换为json字符串,如下所示:

console.log(obj, JSON.stringify(obj));

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify

答案 7 :(得分:2)

使用-keep public class org.jsoup.** { public *; } 会将您的对象抛出到Javascript控制台,但这并不总是您想要的。使用console.log(object)将返回大部分内容存储在变量中,例如将其发送到textarea输入并将内容提交回服务器。

答案 8 :(得分:0)

在Chrome中,点击3个点,然后点击更多工具,然后点击开发者。在控制台上,键入console.dir(yourObject)。Click this link to view an example image