javascript - 在布尔变量之间切换
问题描述
我想知道如何在两个布尔变量之间切换。这在第一次运行代码时正常工作,但在第二次运行后输出不正确。
第一次运行 switchPlayer() 时输出:
player1.isActive = false,
player2.isActive = true
输出第二次运行 switchPlayer():
player1.isActive = true,
player2.isActive = true
下面是我写的代码:
var Player = function(score, isActive){
this.score = score;
this.isActive = isActive;
}
Player.prototype.toggleIsActive = function(){
if(this.isActive === false){
this.isActive = true;
} else{
this.isActive = false;
}
}
function switchPlayer(){
if(player1.isActive === true){
player1.toggleIsActive();
player2.toggleIsActive();
} else{
player1.isActive = true;
}
}
var player1 = new Player("0", true);
var player2 = new Player("0", false);
switchPlayer();
switchPlayer();
解决方案
您可以像这样简化它:
Player.prototype.toggleIsActive = function(){
this.isActive = !this.isActive;
}
function switchPlayer(){
player1.toggleIsActive();
player2.toggleIsActive();
}
ToggleIsActive 应该与以前相反。另请注意,switchPlayer 仅调用 toggle 没有特定逻辑。
推荐阅读
- react-native - 尽管 Content-Length 正确,但获取返回空 blob
- c++ - 初始化 c 字符串向量
- elixir - 有没有办法让 Dialyzer 手表代码更改?
- database - 如何在 neo4j 密码中仅与一个节点(具有相似名称)创建关系?
- kdb - 根据现有列向 kdb 中的表添加列?
- wordpress - 图像网格不会通过内部主页链接单击加载全屏
- python - 使用带有子集的 iterrows 操作数据框
- python - 如何在 SQLAlchemy 上声明 Postgres 函数?
- python-3.x - Spyder3安装问题:Segmentation fault (core dumped)
- plot - 在笔记本中显示 julia 中的图(使用 juliaBox)