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 回答