首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法定义javascript对象属性

无法定义javascript对象属性
EN

Stack Overflow用户
提问于 2018-11-11 17:03:50
回答 2查看 103关注 0票数 0

我在JS中声明了一个对象,并试图为其属性赋值。但是,如果只定义了一个属性,但不能使用多个属性,我就可以这样做。

这个工作很好:

代码语言:javascript
运行
复制
let User = {
  name
};

User['name']='Praveen';
alert(User.name);

,但这不是

代码语言:javascript
运行
复制
let User = {
    name,
    email
};

User['name']='Praveen';
User['email']='incopraveen@gmail.com';

alert(User.email); //says email is not defined.

注:我也试过移除分号。尝试过的点表示法也是

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-11 17:13:20

您的代码没有问题,请检查您是否有在User对象中设置的现有name,email变量,

我认为您没有现有的名称和电子邮件变量。这样它就不能自己创建用户对象。

你可以这样做..。

代码语言:javascript
运行
复制
let User = {};
User['name']='Praveen';
User['email']='incopraveen@gmail.com';

这个链接可以帮到你,https://alligator.io/js/object-property-shorthand-es6/

票数 0
EN

Stack Overflow用户

发布于 2018-11-11 17:09:11

因为这是:

代码语言:javascript
运行
复制
 let User = {
   name,
   email
 };

是用于:

代码语言:javascript
运行
复制
 let User = {
   name: name,
   email: email,
 };  

因此,它直接将两个属性初始化为变量nameemail所保存的值。name是定义的,它是您所在页面的名称,您可以很容易地检查该页面:

代码语言:javascript
运行
复制
  console.log(name);

但是尚未定义电子邮件,试图获取未声明的变量会导致错误:

代码语言:javascript
运行
复制
  console.log(email); // email is not defined

要解决这个问题,请在此之前显式声明两个变量:

代码语言:javascript
运行
复制
  let name = "test";
  let email = "test@example.com";

  let User = {
   name,
   email
 };

或根本不初始化属性:

代码语言:javascript
运行
复制
 let User = {};

或直接将属性设置为值:

代码语言:javascript
运行
复制
  let User = {
   name: "test",
   email: "test@example.com",
  };
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53251085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档