Javascript 使一个变量根据另一个变量的布尔状态记忆一个值
有没有办法在Javascript中实现一个“闩锁”函数,根据第二个变量“y”(布尔类型,用户交互)的状态存储数值变量“x”(不断自动计数)的值?大概是这样的:Javascript 使一个变量根据另一个变量的布尔状态记忆一个值,javascript,Javascript,有没有办法在Javascript中实现一个“闩锁”函数,根据第二个变量“y”(布尔类型,用户交互)的状态存储数值变量“x”(不断自动计数)的值?大概是这样的: x = // count up constantly, x1 = store the x value when -> y = is "false" (EVEN IF it becomes "true" again) 问题是,当“y”返回到“true”状态时,“x1”将丢失存储的值并再次变为“未定义”,我需要该值在以后进行数学运算(
x = // count up constantly,
x1 = store the x value when ->
y = is "false" (EVEN IF it becomes "true" again)
问题是,当“y”返回到“true”状态时,“x1”将丢失存储的值并再次变为“未定义”,我需要该值在以后进行数学运算(减法)。有人知道如何解决这个问题吗(我对Javascript很在行)
这里是我到目前为止所获得的代码:
var x = // this value change constantly
function latchON() {
var x1;
if (!y) {
x1 = x;
return x1;
}
}
z = latchON() - x // this is operation I need perform, but result "NaN", because x1 is "undefined" when y become "true"...
对不起,如果我不能很好地解释,对不起,我的英语也不好(不是我的母语)
编辑-感谢所有试图帮助我的人。我最终设法解决了这个问题,使用cookies存储值(我花了一个星期的时间试图记住它:(但后来没有……),按照本页上的一些说明进行操作不太确定您想做什么,但是这个怎么样
var x = // this value change constantly
var x1 = 0
function latchON() {
if (!y) {
x1 = x;
}
return x1;
}
不要在评论中添加更正,只需编辑问题即可。;-)多做一点解释可能有助于操作。;-)在这里,您在函数外部定义x1,因此其值将自上次更改后保持不变。在您的版本中,x1是一个没有初始值的局部变量,因此如果y为真,则会得到NaN。此外,从您编写的内容来看,您总是希望函数返回一个值,因此return语句应该放在if块之外。