Просто пытаюсь распечатать h1.name
, чтобы передать консоль, но я получаю ошибку ReferenceError: h1 is not defined
. Неважно, если я набираю 1, 2 или 3, все равно та же ошибка. Что я делаю не так?Простая переменная не указана. Исходная ошибка в Javascript
function Hand(name, sChips) {
this.name = name;
this.sChips = sChips;
}
function start() {
var nHands = prompt("How many hands do you want to play?(1,2, or 3)");
var nHands = Number(nHands);
if (0 < nHands < 4) {
if (nHands === 1) {
var h1 = new Hand("First Hand", 150000);
}
else if (nHands === 2) {
var h1 = new Hand("First Hand", 75000);
var h2 = new Hand("Second Hand", 75000);
}
else if (nHands === 3) {
var h1 = new Hand("First Hand", 50000);
var h2 = new Hand("Second Hand", 50000);
var h3 = new Hand("Third Hand", 50000);
}
else {
start();
}
}
};
start();
console.log(h1.name)
varibale 'h1' существует только внутри функции' start() ', это локально. –
Это не идеальное объявление var в любом случае. Вы должны объявить свои переменные в начале функции. Переменные JavaScript являются только функциями, поэтому объявление переменных внутри блока 'if-else' бессмысленно – jasonscript
просто вернет то, к чему вы хотите получить: return {h1: h1, h2: h2} и ссылаться так: start() .h1.name; Вы должны выполнить возврат до последнего «}» в своей стартовой функции. –