星期一, 三月 09, 2009

Javascript: 打印对象

alert() 是我们调试阶段经常使用的方法,可以查看目标变量的值。但是,如果目标变量是对象,如:

var foo = {'key1': 'foo1', 'key2': 'foo2'};
alert(foo);

其显示结果是 [object Object]。这对于调试没有多大用处。再试下这个:

for(myKey in myObj){
alert ("myObj["+myKey +"] = "+myObj[myKey]);
}

虽然可以显示期待的结果,但有点麻烦(或者可以将上面的代码封装在一个方法里)。

对于 Gecko 内核的浏览器,可以使用对象的 toSource() 方法,这是其 Javascript 的一个特性。

alert(foo.toSource());

其打印结果是: ({key1:”foo1″, key2:”foo2″})。

最后,当然不能忘了 Firebug 这个利器:

console.log(foo);

其打印结果是:Object key1=foo1 key2=foo2