每次运行此函数时,p1_Balance将始终重置为10并且不会保持增量或减量的新值。
function Balance() {
var p1_Balance=10;
var x= Math.floor(10*Math.random());
if (x<5) {
p1_Balance=p1_Balance-1;
} else {
p1_Balance=p1_Balance+1;
}
return p1_Balance;
}
答案 0 :(得分:0)
将p1_Balance
传递给函数,而不是每次调用函数时都将其初始化:var p1_Balance = 10;
答案 1 :(得分:0)
可能有几种解决方案: 一个是将p1_Balance声明为全局变量。
var p1_Balance=10;
function Balance(){
var x= Math.floor(10*Math.random());
if (x<5) {
p1_Balance=p1_Balance-1;
}
else {
p1_Balance=p1_Balance+1;
}
return p1_Balance;
}
另一个是你可以将余额作为函数参数传递:
function Balance(p1_Balance){
var x= Math.floor(10*Math.random());
if (x<5) {
p1_Balance=p1_Balance-1;
}
else {
p1_Balance=p1_Balance+1;
}
return p1_Balance;
}
.....
value = Balance(10);// value=something that you want to change by that function.
答案 2 :(得分:0)
p1_Balance应该在函数范围之外声明(意味着不在函数本身内)。否则,每次调用该函数时,将值设置为10的初始化程序也会运行。
var p1_Balance=10;
function Balance(){ ...
答案 3 :(得分:0)
您可以使用Javascript closures创建一个能够满足您需求的功能,如下所示:
var Balance = (function() {
var p1_Balance = 10;
return function() {
var x = Math.floor(10 * Math.random());
if (x < 5)
return p1_Balance += 1;
else
return p1_Balance -= 1;
};
})();
for (var i = 0; i < 10; i++)
console.log(Balance());
或者,您需要在函数外部定义p1_Balance
变量或将其作为参数传递。