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


当前回答

我改进了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
}

我用了第一个答案,但我觉得里面少了一个递归。

结果是:

function dump(obj) {
    var out = '';
    for (var i in obj) {
        if(typeof obj[i] === 'object'){
            dump(obj[i]);
        }else{
            out += i + ": " + obj[i] + "\n";
        }
    }

    var pre = document.createElement('pre');
    pre.innerHTML = out;
    document.body.appendChild(pre);
}

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

再看看这个Stack-O的答案

如果你正在寻找PHP函数转换成JS,有一个小网站:http://phpjs.org。 在那里,你可以用JS可靠地编写大部分PHP函数。对于var_dump尝试:http://phpjs.org/functions/var_dump/(确保检查顶部评论,这取决于“echo”,也可以从同一站点下载)

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

例子:

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