【发布时间】:2021-07-08 04:02:21
【问题描述】:
我正在用 JS 制作井字游戏,我正在尝试在“游戏控制器”模块中实现一个函数来处理玩家的回合。我遇到的问题是全局属性 'currentPlayer' 没有在修改它的函数范围之外更改其值。
我尝试使用开发工具进行调试,我可以看到值发生变化,但仅在 'switchPlayerTurn' 函数内部。这里有什么建议吗?
const GameController = (() => {
const activePlayers = [];
let currentPlayer = '';
const _switchPlayerTurn = () => {
if(currentPlayer === '') {
currentPlayer = activePlayers[0];
} else if(currentPlayer === activePlayers[0]){
currentPlayer = activePlayers[1];
} else if(currentPlayer === activePlayers[1]){
currentPlayer = activePlayers[0];
}
}
const init = () => {
return createPlayers()
.then(_switchPlayerTurn());
}
return {
init,
activePlayers,
currentPlayer,
}
})();
【问题讨论】:
标签: javascript scope closures