javascript对象属性无法定义

时间:2018-11-11 17:03:50

标签: javascript javascript-objects

我在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.

注意:我也尝试过删除分号。         也尝试了点符号

2 个答案:

答案 0 :(得分:5)

因此,

 let User = {
   name,
   email
 };

是以下内容的缩写:

 let User = {
   name: name,
   email: email,
 };  

因此,它将两个属性直接初始化为变量 nameemail持有的值。 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/

提供帮助