最近需要用到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"));