Javascript 获取任何对象的属性和函数列表
我希望迭代任何类型的javascript对象(本例中为IDBKeyRange)的属性和函数 我尝试使用以下代码:-Javascript 获取任何对象的属性和函数列表,javascript,Javascript,我希望迭代任何类型的javascript对象(本例中为IDBKeyRange)的属性和函数 我尝试使用以下代码:- <script type="text/javascript"> var arr = Object.getOwnPropertyNames(IDBKeyRange.only(43)); for(var i=0;i<arr.length;i++) { document.write(arr[i]+"</br>"); }
<script type="text/javascript">
var arr = Object.getOwnPropertyNames(IDBKeyRange.only(43));
for(var i=0;i<arr.length;i++) {
document.write(arr[i]+"</br>");
}
</script>
var arr=Object.getOwnPropertyNames(IDBKeyRange.only(43));
对于(var i=0;i使用for in
循环:
for(var key in myObject){
console.log(key, ':', myObject[key]);
}
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');
}
似乎在JSIDLE中工作:IDBKeyRange.only(43)是否返回IDBKeyRange对象?