簡體   English   中英

修改變量的功能不起作用-Javascript

[英]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不會與forceBasemodifyForce保持任何連接,您必須手動為其分配新值。 您應該這樣更改代碼:

{
    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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM