通常,如果我们只是使用alert(object);
它将显示为[object Object]
.如何在JavaScript中打印对象的所有内容参数?
这将使用缩进的JSON对象为您提供非常好的输出:
alert(JSON.stringify(YOUR_OBJECT_HERE, null, 4));
第二个参数在返回之前改变字符串的内容.第三个参数指定可用作空白的空格数.
如果您使用的是Firefox,则alert(object.toSource())
应该可以进行简单的调试.
除了使用调试器之外,您还可以使用foreach
循环访问对象的所有元素.以下printObject
函数应该alert()
显示所有属性和相应值的对象.
function printObject(o) { var out = ''; for (var p in o) { out += p + ': ' + o[p] + '\n'; } alert(out); } // now test it: var myObject = {'something': 1, 'other thing': 2}; printObject(myObject);
使用DOM检查工具是首选,因为它允许您挖掘作为对象本身的属性.Firefox有FireBug,但所有其他主流浏览器(IE,Chrome,Safari)也都有内置的调试工具,你应该检查.
如果您只想拥有对象的字符串表示,则可以使用该JSON.stringify
函数,使用JSON库.
打印您可以使用的对象的内容
console.log(obj_str);
你可以在控制台中看到如下结果.
Object {description: "test"}
对于打开控制台,在Chrome浏览器中按F12键,您将在调试模式下找到控制台选项卡.
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: Converting circular structure to JSON
您应该考虑使用FireBug进行JavaScript调试.它将让您以交互方式检查所有变量,甚至可以逐步执行功能.
使用dir(对象).或者你总是可以下载Firebug for Firefox(真的很有帮助).