Javascript 用户[年龄]的情况;“未定义”;(错误)此处,而用户[名称]已定义?
Javascript 用户[年龄]的情况;“未定义”;(错误)此处,而用户[名称]已定义?,javascript,Javascript,功能用户(姓名、年龄){ this.name=名称; 这个。年龄=年龄; } var用户=新用户('Daniel',45); document.write(user[name]+'+'是'+''+用户[age]+''+'岁!')user[name]不会抛出错误,因为它引用的是。但是,窗口中没有age属性。所以,你得到了错误 要使用用户对象,需要使用点符号或括号符号(带引号): 以下是更新的代码片段: 功能用户(姓名、年龄){ this.name=名称; 这个。年龄=年龄; } var用户=新用
功能用户(姓名、年龄){
this.name=名称;
这个。年龄=年龄;
}
var用户=新用户('Daniel',45);
document.write(user[name]+'+'是'+''+用户[age]+''+'岁!')
user[name]
不会抛出错误,因为它引用的是。但是,窗口中没有age
属性。所以,你得到了错误
要使用用户
对象,需要使用点符号或括号符号(带引号):
以下是更新的代码片段:
功能用户(姓名、年龄){
this.name=名称;
这个。年龄=年龄;
}
var用户=新用户('Daniel',45);
write(user[“name”]+''+'是'+''+用户[“age”]+''岁!')代码>您错过了字符串引号
功能用户(姓名、年龄){
this.name=name;
这个。年龄=年龄;
}
var用户=新用户('Daniel',45);
write(用户['name']+'+'是'+''+用户['age']+''岁!')代码>原因是您需要以字符串形式访问属性。如果你那样尝试访问它,它将不起作用
user[age]
未定义,而user['age']
将返回与该属性关联的元素。这称为括号表示法
请注意,当您使用
符号访问属性时,您不会使用字符串。您只需使用obj.propertyName
在某些情况下,您没有选择权,必须使用第一种方法。例如,如果属性名称中有空格,则括号表示法是唯一有效的方法。请参见类似于obj的内容。由于存在空格,property name
将无法访问所需的属性。在这里,您必须使用“obj['property name']”在您的问题中有两件事需要解决
您将用户的属性用作变量,而应将它们用作字符串
write(用户['name']+'+'是'+''+用户['age']+''岁!')
其次,它不会在为name而为age时抛出错误,因为该窗口已经有一个属性/变量名,其值为“”。请在浏览器控制台上尝试下面的操作
window.name
我想你的意思是user['name']
和user['age']
user.name是javascript中的idomatic方式,应该优先使用。请不要重复其他答案已经提到的内容
user.name
user["name"]