Подсказка Javascript отображается как неопределенная - PullRequest
0 голосов
/ 15 мая 2018

Я пишу игру в кости, похожую на риск.Это не полный код, а функция, запрашивающая имя игрока.

function getPlayerNames(p1, p2, p3, p4){
    p1 = prompt("What is Player 1's name?", '');p1;
    p2 = prompt("What is Player 2's name?", '');p2;
    p3 = prompt("What is Player 3's name?", '');p3;
    p4 = prompt("What is Player 4's name?", '');p4;
    return;
}

let player1Name, player2Name, player3Name, player4Name;
getPlayerNames(player1Name, player2Name, player3Name, player4Name);

, когда имя игрока (1,2,3,4) используется позже в коде, которое отображается как 'undefined».Что плохого в том, что он не объявляет имена, введенные в приглашении, и показывает, что они не определены?

1 Ответ

0 голосов
/ 15 мая 2018

Как сказано в комментариях: JS не передается по ссылке, он передается по значению

Сказал, что вот вам возможное решение:
1. Получите именавнутри функции.
2. Вернуть массив с именами.
3. Присвоить имена переменным.

Предложение: Также читайте о Области переменных

function getPlayerNames(){
    let p1 = prompt("What is Player 1's name?", '');
    let p2 = prompt("What is Player 2's name?", '');
    let p3 = prompt("What is Player 3's name?", '');
    let p4 = prompt("What is Player 4's name?", '');
    return [p1,p2,p3,p4];
}

var names = getPlayerNames();    
let player1 = names[0],
player2 = names[1],
player3 = names[2],
player4 = names[3];

console.log("Player 1: " + player1);
console.log("Player 2: " + player2);
console.log("Player 3: " + player3);
console.log("Player 4: " + player4);
...