html 如何添加两个要定期更新的变量并获得最新答案?

mpbci0fu  于 2023-01-24  发布在  其他
关注(0)|答案(1)|浏览(110)

我试着把两个变量加在一起,这两个变量都是有规律地变化的,但是不管它们如何变化,第三个变量是两个变量加在一起的结果,如果这两个变量在开始时没有声明,那么第三个变量要么没有值,要么保持为初始值的和。
我制作了一个小的演示程序来测试它,其中有一些按钮用于调整“prodScore”变量,还有一个按钮用于将“score”值更新为invisScore和prodScore之和。

<p>invisScore:<span id="invisScore"></span></p>
    <p>prodScore:<span id="prodScore"></span></p>   
    <p>invisScore + prodScore:<span id="score"></span></p>
    <p><button onclick="addProdScore()">Add 1 Production Score</button></p>
    <p><button onclick="minusProdScore()">Minus 1 Production Score</button></p>
    <p><button onclick="updateScore()">Update Score</button></p>
  
    <script>
    let invisScore = 5
    let prodScore = 0
        addProdScore = function(){
            prodScore += 1
        document.getElementById('prodScore').textContent = prodScore;
        }
        minusProdScore = function(){
            prodScore -= 1
        document.getElementById('prodScore').textContent = prodScore;
        }
        updateScore = function(){
            document.getElementById('score').textContent = score;
        }
        var score = invisScore+=prodScore
    </script>

每次只得到5,即0值prodScore和5值invisScore的总和。我需要做什么来使总和“score”值是最新的?

ruyhziif

ruyhziif1#

score变量在页面加载时设置一次,之后就不再更新。您可以在更新计算它的值时更新它,例如:

addProdScore = function(){
  prodScore += 1;
  score = invisScore+=prodScore;
  document.getElementById('prodScore').textContent = prodScore;
}

或者使其计算成为重新显示值时要重新调用的函数:

updateScore = function(){
  document.getElementById('score').textContent = score();
}
var score = function() {
  return invisScore+=prodScore;
}

基本上,不管你怎么看,如果你想更新“分数”,那么你需要用新的值重新计算它。
顺便说一句,我不确定这是否完全符合你的意图:

score = invisScore+=prodScore;

您是否还在修改invisScore?为了清楚起见,您可能希望将这些操作分离到它们自己的代码行中。就目前而言,这一行令人困惑,而困惑的代码会导致bug。

相关问题