Свойство объекта JavaScript не может быть определено - PullRequest
0 голосов
/ 11 ноября 2018

Я объявил объект в 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 голосов
/ 11 ноября 2018

Ваш код в порядке, Проверьте, есть ли у вас переменная name,email, заданная в пользовательском объекте,

Я думаю, что у вас нет существующей переменной name и email. Так что он не может создать сам объект пользователя.

Вы можете сделать это ..

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

Эта ссылка может вам помочь, https://alligator.io/js/object-property-shorthand-es6/

0 голосов
/ 11 ноября 2018

Потому что это:

 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",
  };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...