如何解决关于为什么我能够访问在函数中创建的变量的问题
对于为什么保持事件侦听器按钮可以访问我在函数init()中创建的winningScore变量感到困惑。自从winningScore在函数中声明以来,我就曾想过,在其他任何地方都无法访问它。我想念什么?不能抱怨它起作用,而只是想了解为什么会这样。感谢帮助。
let gamePlaying = true;
let activePlayer = 0;
let roundScore = 0;
let scores = [0,0];
init();
diceRolls = []
previousDiceRoll = 0
let counter = 0
document.querySelector('.btn-roll').addEventListener('click',function() {
if (gamePlaying) {
//1. Random number
let dice = Math.floor(Math.random()*6)+1;
//2. Display the result
let diceDOM = document.querySelector('.dice');
diceDOM.style.display = 'block';
diceDOM.src = 'dice-'+ dice + '.png';
//3. Update the round score IF the rolled number was NOT a 1 or if rolled two 6's in a row
diceRolls.push(dice);
counterAdj = counter++ - 1;
previousDiceRoll = diceRolls[counterAdj];
console.log(previousDiceRoll);
if (dice === 6 && dice === previousDiceRoll) {
scores[activePlayer] = 0;
document.getElementById('score-'+activePlayer).innerHTML = scores[activePlayer]
nextPlayer();
} else if (dice !==1) {
//add score
roundScore += dice;
document.querySelector('#current-' + activePlayer).innerHTML = roundScore;
}
else {
//Next player
nextPlayer();
}
}});
document.querySelector('.btn-hold').addEventListener('click',function() {
if(gamePlaying){
//Add CURRENT score to GLOBAL score
scores [activePlayer] += roundScore
//Update the UI
document.querySelector('#score-' + activePlayer).textContent = scores[activePlayer];
//Check if player won the game
if (scores[activePlayer]>=winningScore){
document.querySelector('#name-'+activePlayer).textContent = 'Winner!';
document.querySelector('.dice').style.display = 'none';
document.querySelector('.player-' + activePlayer + '-panel').classList.add('winner');
document.querySelector('.player-' + activePlayer + '-panel').classList.remove('active');
gamePlaying = false;
}
else {
nextPlayer();
}
}});
function nextPlayer (){
activePlayer === 0 ? activePlayer = 1 : activePlayer = 0;
roundScore = 0;
document.getElementById('current-0').textContent = '0';
document.getElementById('current-1').textContent = '0';
document.querySelector('.player-0-panel').classList.toggle('active');
document.querySelector('.player-1-panel').classList.toggle('active');
document.querySelector('.dice').style.display = 'none';
}
document.querySelector('.btn-new').addEventListener('click',init);
function init() {
winningScore = prompt ('Set Winning Score');
scores = [0,0];
activePlayer = 0;
roundScore = 0;
gamePlaying = true;
document.querySelector('.dice').style.display = 'none';
document.getElementById('score-0').textContent = '0';
document.getElementById('score-1').textContent = '0';
document.getElementById('current-0').textContent = '0';
document.getElementById('current-1').textContent = '0';
document.getElementById('name-0').textContent = 'Player 1';
document.getElementById('name-1').textContent = 'Player 2';
document.querySelector('.player-0-panel').classList.remove('winner');
document.querySelector('.player-1-panel').classList.remove('winner');
document.querySelector('.player-0-panel').classList.remove('active');
document.querySelector('.player-1-panel').classList.remove('active');
document.querySelector('.player-0-panel').classList.add('active');
};
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。