我在JS中声明了一个对象,并试图为其属性分配一个值。 但是,只要定义了一个属性,但不定义多个属性,我就可以做到。
这很好:
let User = {
name
};
User['name']='Praveen';
alert(User.name);
但这不是
let User = {
name,
email
};
User['name']='Praveen';
User['email']='incopraveen@gmail.com';
alert(User.email); //says email is not defined.
注意:我也尝试过删除分号。 也尝试了点符号
答案 0 :(得分:5)
因此,
let User = {
name,
email
};
是以下内容的缩写:
let User = {
name: name,
email: email,
};
因此,它将两个属性直接初始化为变量 name
和email
持有的值。 name
已定义,它是您所在页面的名称,您可以轻松地通过以下方法进行检查:
console.log(name);
但是电子邮件尚未定义,尝试获取未声明的变量会导致错误:
console.log(email); // email is not defined
要解决此问题,请在以下位置显式声明两个变量:
let name = "test";
let email = "test@example.com";
let User = {
name,
email
};
或者根本不初始化属性:
let User = {};
或直接将属性设置为值:
let User = {
name: "test",
email: "test@example.com",
};
答案 1 :(得分:0)
您的代码还可以, 请检查您是否在用户对象
中设置了任何现有的name,email
变量
我认为您没有现有的姓名和电子邮件变量。这样它就不能创建用户对象本身。
您可以这样做。.
let User = {};
User['name']='Praveen';
User['email']='incopraveen@gmail.com';
此链接可以为您https://alligator.io/js/object-property-shorthand-es6/
提供帮助