Переопределить глобальную переменную через DOM (forEach addEventListener) - PullRequest
0 голосов
/ 18 января 2020

Я пытаюсь создать игру «камень-ножницы-бумага», но мне кажется, что я застрял с глобальным / локальным объявлением одной из моих переменных. Я обнаружил аналогичную проблему с людьми, использующими функции, но я не могу перевести решения на использование методов DOM.

let playerChoice;

const playerBtns = document.querySelectorAll("button");
playerBtns.forEach((button) => {
    button.addEventListener("click", (e) => {
        let playerChoice = button.id;
    });
});

Проблема, с которой я сталкиваюсь, заключается в том, что playerChoice объявлен локально, и одна из моих других функций пытается подобрать эту переменную глобально.

Можно ли как-то переопределить playerChoice глобально?

Для функции roundWinner () ниже, playerChoice не определен.

function compSelection() {
    choices = ["rock", "paper", "scissors"];

    let compChoice = Math.floor(Math.random() * choices.length);
    return choices[compChoice];
} 

function roundWinner() {
    const outcome = {
        rock: {lose: "paper", win: "scissors"},
        paper: {lose: "scissors", win: "rock"},
        scissors: {lose: "rock", win: "paper"}
    }

    if (outcome[playerChoice].win === compChoice()) {
        alert("You win!");
    } else if (outcome[playerChoice].lose === compChoice()) {
        alert("Computer wins!");
    } else {
        alert("Tie!");
    }
}  

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...