通常如果我们只使用alert(object);它将显示为[object object]。如何在JavaScript中打印对象的所有内容参数?


当前回答

你也可以使用Prototype的object .inspect()方法,该方法“返回对象的面向调试的字符串表示”。

http://api.prototypejs.org/language/Object/inspect/

其他回答

你可以使用Node的util.inspect(object)来打印出对象的结构。

当你的对象有循环依赖时,这是特别有用的。

$ node

var obj = {
   "name" : "John",
   "surname" : "Doe"
}
obj.self_ref = obj;

util = require("util");

var obj_str = util.inspect(obj);
console.log(obj_str);
// prints { name: 'John', surname: 'Doe', self_ref: [Circular] }

它是JSON。stringify抛出异常:TypeError:转换循环结构为JSON

简单的函数提醒对象或数组的内容。 用数组或字符串或对象调用此函数,它会提醒内容。

函数

function print_r(printthis, returnoutput) {
    var output = '';

    if($.isArray(printthis) || typeof(printthis) == 'object') {
        for(var i in printthis) {
            output += i + ' : ' + print_r(printthis[i], true) + '\n';
        }
    }else {
        output += printthis;
    }
    if(returnoutput && returnoutput == true) {
        return output;
    }else {
        alert(output);
    }
}

使用

var data = [1, 2, 3, 4];
print_r(data);

您应该考虑使用FireBug进行JavaScript调试。它将允许您交互式地检查所有变量,甚至逐步通过函数。

ie8有开发工具,类似于Firefox的Firebug。Opera有Opera DragonFly,谷歌Chrome也有开发人员工具(Shift+Ctrl+J)。

下面是在IE6-8中调试JavaScript的更详细的答案: 使用IE8“开发人员工具”调试早期IE版本

打印可以使用的对象的内容

console.log(obj_str);

你可以在控制台看到结果,如下图所示。

Object {description: "test"} 

打开控制台按F12在chrome浏览器,你会发现控制台选项卡在调试模式。