无法枚举javascript中对象的所有属性

时间:2012-06-19 13:58:28

标签: javascript

我是javascript的新手并拥有以下代码:

<html>
    <body>
    <object classid="clsid:f6D90f11-9c73-11d3-b32e-00C04f990bb4" id="abc">
    </object>
    <script>
    var b=document.getElementById("abc");
    for (a in b){
        document.write(a+"<br>");
    }
    alert(b.object);
    </script>
    </body>
</html>

现在,我的问题是为什么这段代码不会枚举对象b的所有属性。 更具体地说,此代码不会枚举“object”属性。但是代码警报(b.object)告诉我这是一个对象。

我做得对吗?有人可以澄清我的怀疑。

由于

1 个答案:

答案 0 :(得分:2)

要枚举对象的所有属性(自己的或继承的,可枚举的或不可枚举的),请执行以下操作:

do {
    Object.getOwnPropertyNames( obj ).forEach(function ( prop ) {
        // process prop       
    });
} while ( obj = Object.getPrototypeOf( obj ) );

现场演示: http://jsfiddle.net/L899Z/3/