0

我是使用 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 的所有属性。更具体地说,这段代码没有枚举“对象”属性。但是代码 alert(b.object) 告诉我这是一个对象。

我做的一切都正确吗?有人可以澄清我的疑问。

谢谢

4

1 回答 1

2

要枚举对象的所有属性(无论是拥有的还是继承的,可枚举的或不可枚举的),请执行以下操作:

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

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

于 2012-06-19T14:06:14.933 回答