我怎么知道javascript对象的所有属性?

时间:2011-02-16 17:36:56

标签: javascript reflection

有没有类似Java的反思,我可以知道哪些属性可用?

3 个答案:

答案 0 :(得分:2)

for(var key in myObject) {
    //do something with key
}

枚举所有属性

window对象http://jsfiddle.net/KdyLG/

的所有属性

答案 1 :(得分:1)

这是我使用的一个功能。您可以指定要转储的阵列的哪个级别。

alert(dump(myArray));

function dump(arr,level) {
    var dumped_text = "";
    if(!level) level = 0;

    //The padding given at the beginning of the line.
    var level_padding = "";
    for(var j=0;j<level+1;j++) level_padding += "    ";

    if(typeof(arr) == 'object') { //Array/Hashes/Objects 
        for(var item in arr) {
            var value = arr[item];

            if(typeof(value) == 'object') { //If it is an array,
                dumped_text += level_padding + "'" + item + "' ...\n";
                dumped_text += dump(value,level+1);
            } else {
                dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
            }
        }
    } else { //Stings/Chars/Numbers etc.
        dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
    }
    return dumped_text;
}

答案 2 :(得分:1)

一种方法:

for(var attrib in myObject){    

 if(typeof attrib != 'function') {

     alert('this is attribute ' + attrib + 'with value' +  myObject[attrib]);    
 } }