Object.getOwnPropertyNames 返回一个键数组,即对象的属性名称。
您必须遍历数组并引用对象:
var O=// an object instance;
var A= Object.getOwnPropertyNames(O).map(function(itm){
try{
return itm+':'+O[itm];
}
catch(er){
return itm+': ERROR!'+er.message;
}
});
alert(A.join('\n'));
如果任何键引用对象,您将需要一个递归方法 -
function deepProps(O){
var arr= Object.getOwnPropertyNames(O).map(function(itm){
var hoo= O[itm];
try{
if(hoo== window){
return '\n'+itm+': window';
}
if(hoo){
if(hoo.nodeName) return itm+': '+ hoo.nodeName;
if(typeof O[itm]== 'object'){
return '\n\n'+itm+':\n'+deepProps(O[itm]);
}
return itm+': '+O[itm];
}
return itm+': null';
}
catch(er){
return itm+': '+ 'ERROR! '+er.message;
}
})
return arr.join('\n');
}