[英]Function to modify a variable not working - Javascript
我的問題涉及3個變量:
var modifyForce = 2;
var forceBase = 15;
var Force = (forceBase + modifyForce);
顯示17力
起作用的第一個功能是:
{
Force++;
document.getElementById("Force").innerHTML = Force;
}
每次我將其加+1以強制
但是第二個功能:
{
forceBase++;
document.getElementById("Force").innerHTML = Force;
}
不為強制加+1。 由於應該將+1加到forceBase上,並且Force = forceBase + ModifyForce,所以應該將1加到Force ...我想。
我的目標是擁有“ forceBase”統計信息和“ modifyForce”,以便獲得總計“ Force”
我可能缺少一些簡單的東西,但找不到。 :/
謝謝 :)
問題是您沒有將Force
更新為等於新的forceBase + modifyForce
。 除了聲明之外, Force
不會與forceBase
或modifyForce
保持任何連接,您必須手動為其分配新值。 您應該這樣更改代碼:
{
forceBase++;
Force = forceBase + modifyForce;
document.getElementById("Force").innerHTML = Force;
}
請記住,如果在其他功能(例如您發布的第一個功能)中更改了“ Force
,這將重置這些更改。
似乎沒有人建議過這個...
如果希望Force
始終為forceBase + modifyForce
則使其成為函數。
function Force(){
return forceBase + modifyForce
}
現在可以完成這項工作(請注意,現在使用()
調用了Force:
{
forceBase++;
document.getElementById("Force").innerHTML = Force();
}
var modifyForce = 2;
var forceBase = 15;
var Force = (forceBase + modifyForce);
力是用forceBase + modifyForce
計算的一次。聲明后,您只需將數字保存在Force
如果您想使用Force作為函數來將modifyForce添加到forceBase,請使用類似
var Force = function () {
return forceBase + modifyForce;
}
但是您不能像Force ++:P那樣增加它
您在其中編輯forceBase
的代碼塊不會重新計算Force
的更新值。
為了使這個簡單,我建議您將重新計算和輸出移動到如下所示的獨特函數中:
var modifyForce = 2;
var forceBase = 15;
function updateForce() {
var Force = (forceBase + modifyForce);
document.getElementById("Force").innerHTML = Force;
}
// Output the current value of Force
updateForce(); // output is 17
forceBase++;
updateForce(); // output is 18
modifyForce++;
updateForce(); // output is 19
最好的辦法是創建一個類:
var objForce = {
modifyForce: 2,
forceBase: 15,
Force: 17,
reCalculate: function() {
this.Force = this.modifyForce + this.forceBase;
}
};
objForce.forceBase++;
objForce.reCalculate();
document.getElementById("Force").innerHTML = objForce.Force;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.