1

オブジェクト Wine1 のすべてのプロパティをそれぞれの値とともに表示したいのですが、このコードは機能しません。

<html>
    <head>

    </head>
    <body>
        <input type="button" value="Button" onClick="f1()">
        <script type="text/javascript">
            function f1()
            {
                var Wine1=new Object();
                Wine1.color="Red";
                Wine1.price="50000 USD";
                Wine1.vine-yard="South";
                var record="Wine1<br><br>";

                for(var prop in Wine1)
                {
                    record+=prop+"="+Wine1[prop]+"<BR>";
                }
                record+="<br>";
                document.write(record);
            }
        </script>
    </body>
</html>

誰かが間違いを見つけるのを手伝ってください。

4

1 に答える 1

8
Wine1.vine-yard

vine-yard無効な識別子です。おそらく構文エラーがスローされます。基本的に、、、および英数字のみ_$識別子として受け入れられます。識別子は、プロパティ名または変数名です。

また、ループには、定義したもの以外のプロパティが表示される場合があります。簡単に言えば、ここであなたがする必要があることは次のとおりです。

for (var prop in Wine1) {
    if (Wine1.hasOwnProperty(prop)) {
        record += prop + "=" + Wine1[prop] + "<BR>";
    }
}

最後に、正しいインデントとスペースを使用してください。コードを読んで何が問題なのかを確認することは、非常に役立ちます。

于 2012-12-22T14:48:09.037 に答える