You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript动态变量求和无法实时更新,如何修复?

问题:如何让两个变量的和实时更新?

我尝试将两个会定期变化的变量相加,但作为两者之和的第三个变量,要么在初始未声明时无值,要么始终保持初始值的和。
制作了测试Demo,通过按钮修改prodScore变量,另有按钮用于将score更新为invisScore与prodScore的和,但每次得到的score都是初始值的和(5)。

错误原因

  • 初始代码里var score = invisScore+=prodScore是一次性计算,仅在页面加载时执行一次,后续prodScore变化时不会重新计算。而且+=会错误修改invisScore本身的初始值,逻辑上应该是取两者的和,而非修改其中一个变量。
  • updateScore函数只是把之前计算好的固定score值显示出来,没有重新计算当前两个变量的实时和。

修正方案

直接在updateScore函数里实时计算两个变量的和,不需要提前存储score(如果需要存储也可以在函数里重新赋值),同时补充初始页面加载时的变量显示:

修改后的完整代码:

<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

// 页面加载时先显示初始值
document.getElementById('invisScore').textContent = invisScore;
document.getElementById('prodScore').textContent = prodScore;

addProdScore = function(){
    prodScore += 1
    document.getElementById('prodScore').textContent = prodScore;
}
minusProdScore = function(){
    prodScore -= 1
    document.getElementById('prodScore').textContent = prodScore;
}
updateScore = function(){
    // 每次调用时实时计算当前的和
    const currentScore = invisScore + prodScore;
    document.getElementById('score').textContent = currentScore;
    // 如果需要保留score变量,也可以这样写:
    // score = invisScore + prodScore;
    // document.getElementById('score').textContent = score;
}
</script>

如果想要自动更新总和(不用点击Update Score按钮),可以在修改prodScore的函数里直接调用updateScore:

addProdScore = function(){
    prodScore += 1
    document.getElementById('prodScore').textContent = prodScore;
    updateScore(); // 自动更新总和
}
minusProdScore = function(){
    prodScore -= 1
    document.getElementById('prodScore').textContent = prodScore;
    updateScore(); // 自动更新总和
}

内容的提问来源于stack exchange,提问作者summersveil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 19:20:27