无法定义javascript对象属性

标签 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.

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

最佳答案

因为:

 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",
  };

关于无法定义javascript对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53251085/

相关文章:

javascript - JavaScript缩短了用于生成随机CSS颜色的重复代码

java - 淡入淡出 JSP 页面

javascript - 非阻塞函数返回后的 Node.js 回调处理

javascript - 将我的 Javascript 对象转换为参数字符串时遇到问题

javascript - 使用 ES6 制作迭代器

javascript - 如果我将运算符声明为变量,我可以执行此命令模式吗?

javascript - 样式与我的 HTML 代码相矛盾

javascript - 如何使用 Api 将正在播放的 last.fm 添加到我的网站中

javascript - 幕后是否存在 JavaScript 中的数组/列表?

javascript - 随机播放对象对象或在模板中的 Angular 2 中随机显示元素