无法定义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/

相关文章:

java - getEngineByName ("JavaScript"的 ScriptEngine 为空)?

javascript - 这是对总结对象数组有益的 JavaScript 重构吗?

javascript - 从一个对象复制,更改键但保持相同的值

javascript - 从键数组和值数组创建对象

javascript - 在源代码中将 JSON 数据重新定义为 JavaScript 对象有好处吗?

javascript - JS获取未知单键对象的值

javascript - 有没有办法在没有用户事件的情况下触发 jQuery 的 live() 或 delegate()?

Javascript通过引用访问成员变量

javascript - Fullpage.js 与 angular.js

javascript - Angular.js ng-class 如果 true 从 Controller 可见