最近需要用到JS的反射机制读取对象属性,类似Java中的自省,所以写了一个显示对象属性的小函数。
函数代码:
var array = new Array(); function showType(obj) { for(var i in obj){ if(typeof(obj[i]) == 'object') { showType(obj[i]); array.push("Class " + i); } else { if(typeof(obj[i]) != 'function'){ array.push("\t" + typeof(obj[i]) + " " + i + " = " +obj[i] + ";"); } } } }
调用代码:
showType(JSONData); array.reverse(); alert(array.join("\n")); array = new Array();
另外可以通过eval方法使用字符串来读取对象属性,如:
alert(eval("JSONData.settings.animation.enabled"));