<html>
<head>
<script>
function User(name,age){
this.name=name;
this.age=age;
}
var user = new User('Daniel', 45 );
document.write(user[name]+' '+'is'+' '); //line 1
document.write(user[age]+' '+'years old!'); // line 2
</script>
</head>
<body>
</body>
</html>
在上面的代码中, 当我尝试访问对象用户的属性时 对于名字,我得到'未定义'作为输出 对于年龄,我得到错误说年龄没有定义 无法理解我为什么会遇到第2行的错误 第1行的“未定义”值。两者都应该给出相同的错误吗? 请在此澄清我的疑问。
答案 0 :(得分:1)
因为你错误地访问了它们。 user[name]
不是访问对象属性的正确语法。
应该是:
user['name']
甚至更简单:
user.name
进一步阅读有关访问对象属性的信息:
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Property_accessors
答案 1 :(得分:0)
您应该将名称和年龄指定为字符串。它应该像这样user['name']
<html>
<head>
<script>
function User(name,age){
this.name=name;
this.age=age;
}
var user = new User('Daniel', 45 );
document.write(user["name"]+' '+'is'+' '); //line 1
document.write(user["age"]+' '+'years old!'); // line 2
</script>
</head>
<body>
</body>
</html>
&#13;
或者只是使用。符号
<html>
<head>
<script>
function User(name,age){
this.name=name;
this.age=age;
}
var user = new User('Daniel', 45 );
document.write(user.name+' '+'is'+' '); //line 1
document.write(user.age+' '+'years old!'); // line 2
</script>
</head>
<body>
</body>
</html>
&#13;
答案 2 :(得分:0)
窗口对象的属性名为name
它是什么或我不知道。
[编辑] the name of the window is used primarily for setting targets for hyperlinks and forms.
所以既然它定义了你在第2行中没有得到未定义的错误。
user[name]
相当于user[window.name]
,即user['']
,因为窗口名称未设置。