2015-02-11 53 views
1

我的问题的关注3个变量:功能修改变量的不工作 - 的Javascript

var modifyForce = 2; 
var forceBase = 15; 
var Force = (forceBase + modifyForce); 

它显示17组

这是工作的第一个功能是:

{ 
    Force++; 
    document.getElementById("Force").innerHTML = Force; 
} 

它增加了+1强制每次我叫它

但第二个功能:

{ 
    forceBase++; 
    document.getElementById("Force").innerHTML = Force; 
} 

不向Force添加+1。因为它应该为forceBase和Force = forceBase + modifyForce加1,所以它应该加1来强制......我想。

我的目标是有一个“forceBase”统计+一“modifyForce”为了得到一个总的“强制”

我可能失去了一些东西简单,但我不能找到什么。 :/

谢谢:)

+1

您需要手动更新力,没有引用。 – epascarello 2015-02-11 13:52:53

回答

1

您编辑forceBase的代码块不会重新计算更新值Force

为了使这个简单,我建议您将重新calcultation并输出成不同的功能如下:

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 
2

的问题是你不更新Force等于新forceBase + modifyForce。除了声明之外,Force不保留与forceBasemodifyForce的任何连接,您必须手动为其分配新值。你应该改变你的代码,例如:

{ 
    forceBase++; 
    Force = forceBase + modifyForce; 
    document.getElementById("Force").innerHTML = Force; 
} 

请记住,如果Force在另一个功能被改变(比如您发布的第一个),这会重置这些变化。

+0

没有力量已经增加 – 2015-02-11 13:53:21

+2

@NaeemShaikh你在说什么世界上? – epascarello 2015-02-11 13:55:13

+0

op认为force已经增加了20倍,然后再次重新初始化为Force = forceBase + modifyForce;将它恢复为12 – 2015-02-11 13:58:31

2

似乎没有人曾建议这可是...

如果你想Force永远是forceBase + modifyForce然后使其成为一个功能。

function Force(){ 
    return forceBase + modifyForce 
} 

使得现在这项工作(注意部队现在被称为与()

{ 
    forceBase++; 
    document.getElementById("Force").innerHTML = Force(); 
} 
+0

但是现在'Force ++'不起作用 – R3tep 2015-02-11 14:00:35

+1

并且不需要它。 @ R3tep – 2015-02-11 14:01:01

2
var modifyForce = 2; 
var forceBase = 15; 
var Force = (forceBase + modifyForce); 

力是forceBase + modifyForce 计算你只需数保存在Force以后申报一次

如果您想使用Force作为函数来将modifyForce添加到forceBase中,请使用something像

var Force = function() { 
    return forceBase + modifyForce; 
} 

,但你不能增加它像部队++:P

1

最好的办法可能是创建一个类:

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;