我们需要看看Javascript中对象有什么方法/字段。


当前回答

您希望以JSON形式看到整个对象(对象和变量的所有嵌套层)。JSON代表JavaScript对象表示法,打印出对象的JSON字符串相当于var_dump(以获得JavaScript对象的字符串表示)。幸运的是,JSON很容易在代码中使用,而且JSON数据格式也很适合人类阅读。

例子:

var objectInStringFormat = JSON.stringify(someObject);
alert(objectInStringFormat);

其他回答

我改进了nickf的答案,所以它递归循环遍历对象:

function var_dump(obj, element)
{
    var logMsg = objToString(obj, 0);
    if (element) // set innerHTML to logMsg
    {
        var pre = document.createElement('pre');
        pre.innerHTML = logMsg;
        element.innerHTML = '';
        element.appendChild(pre);
    }
    else // write logMsg to the console
    {
        console.log(logMsg);
    }
}

function objToString(obj, level)
{
    var out = '';
    for (var i in obj)
    {
        for (loop = level; loop > 0; loop--)
        {
            out += "    ";
        }
        if (obj[i] instanceof Object)
        {
            out += i + " (Object):\n";
            out += objToString(obj[i], level + 1);
        }
        else
        {
            out += i + ": " + obj[i] + "\n";
        }
    }
    return out;
}

如果您使用的是firefox,那么firebug插件控制台是检查对象的绝佳方法

console.debug(myObject);

或者你可以像这样循环遍历属性(包括方法):

for (property in object) {
    // do what you want with property, object[property].value
}

控制台。在firebug或google-chrome web-inspector中的Dir(指向链接页面的底部)将输出一个对象属性的交互式列表。

再看看这个Stack-O的答案

如果使用Firebug,可以使用console.log输出一个对象,并在控制台中获得一个超链接的可浏览项。

下面是我最喜欢的var_dump/print_r等效Javascript php var_dump。

function dump(arr,level) {
    var dumped_text = "";
    if(!level) level = 0;
    
    //The padding given at the beginning of the line.
    var level_padding = "";
    for(var j=0;j<level+1;j++) level_padding += "    ";
    
    if(typeof(arr) == 'object') { //Array/Hashes/Objects 
        for(var item in arr) {
        var value = arr[item];
            if(typeof(value) == 'object') { //If it is an array,
                dumped_text += level_padding + "'" + item + "' ...\n";
                dumped_text += dump(value,level+1);
            } else {
                dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
            }
        }
    } else { //Stings/Chars/Numbers etc.
        dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
    }
    return dumped_text;
}