Потому что это:
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",
};