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のすべてのプロパティを列挙しないのかということです。具体的には、このコードは「object」プロパティを列挙していません。しかし、コード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 に答える