function User() {
name: prompt("Your full name");
regDate: new Date();
}
while (User.name != null) {
arrUsers[i] = new User();
...
}
Как сделать так, чтобы при нажатии отмены в prompt цикл прекращался?
В данном коде смешались кони, люди.
Свойство name у функции всегда не null, а User в данном случае именно функция, а не объект. Следовательно проверка User.name != null всегда дает true и цикл становится бесконечным.
К самой функции тоже есть претензии: сейчас она делает совсем не то, что от нее ожидается.
В текущем виде внутри функции объявлены две метки.
Поэтому при использовании функции в качестве конструктора new User(); у полученного объекта вместо ожидаемых полей name и regDate не будет ничего.
Для создания полей их надо присваивать как свойства this, например
this.name = prompt("Your full name");
В данном случае лучше вообще вынести вызов prompt и конструктора, и передавать в конструктор непосредственно введенное имя.
В этом случае и проверка введенной строки тоже становится тривиальной, например:
function User(userName) {
this.name = userName;
this.regDate = new Date();
}
...
var userName;
while ((userName = prompt("Your full name")) != null) {
arrUsers[i] = new User(userName);
...
}
Продвижение своими сайтами как стратегия роста и независимости