【发布时间】:2012-01-28 04:00:01
【问题描述】:
现在当我将自己的对象放入警报功能时,我看到了
[对象对象]
这是毫无意义的信息。有没有办法使用反射来获取这些字段的所有字段和值?
【问题讨论】:
标签: javascript reflection
现在当我将自己的对象放入警报功能时,我看到了
[对象对象]
这是毫无意义的信息。有没有办法使用反射来获取这些字段的所有字段和值?
【问题讨论】:
标签: javascript reflection
JSON.stringify 通常是内置的,可以序列化您传递给它的大多数对象。
也就是说,您可能应该只使用调试器或 console.log 而不是警报。
【讨论】:
if(JSON.stringify)。所以为了避免抛出错误。当然,如果是临时代码,你不需要添加这个逻辑,但是如果代码会持续到生产中,你可能会想要它,以避免在 IE 或旧 FF 等上出现意外故障。你不妨考虑使用console 对象来获取您想要的信息。但同样,只有if(window.console)。
这是其中之一。但最好使用console.log() 然后alert
function objectToString(o){
var parse = function(_o){
var a = [], t;
for(var p in _o){
if(_o.hasOwnProperty(p)){
t = _o[p];
if(t && typeof t == "object"){
a[a.length]= p + ":{ " + arguments.callee(t).join(", ") + "}";
}
else {
if(typeof t == "string"){
a[a.length] = [ p+ ": \"" + t.toString() + "\"" ];
}
else{
a[a.length] = [ p+ ": " + t.toString()];
}
}
}
}
return a;
}
return "{" + parse(o).join(", ") + "}";
}
【讨论】:
当然,也许是这样的
function alertObject(0){
var str = "";
for(i in o)
str += i + " " + o[i] + "\n";
alert(str);
}
Edit :: 注意这只是一个愚蠢的小例子。
【讨论】: