2017-01-22 104 views
1

有沒有一種方法可以在Javascript中實現一個存儲數值變量'x'的值的「鎖存」函數(該函數不斷自動計數,自動計數)取決於第二個變量'y'的狀態(布爾類型,用戶交互)?事情是這樣的:根據另一個變量的布爾狀態,使變量存儲一個值

x = // count up constantly, 
x1 = store the x value when -> 
y = is "false" (EVEN IF it becomes "true" again) 

的問題是,當「Y」返回到「真」狀態,「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"... 

很抱歉,如果我不能很好地解釋,併爲我的英語不好也很難過(不是我的母語)。

編輯 - 感謝所有試圖幫助我的人。我終於設法解決它,使用cookie來存儲的價值(我浪費了一個星期之前,我記得它:(但遲於從未...),按照此頁上的一些說明http://www.quirksmode.org/js/cookies.html

+2

不加改正的意見,只是編輯的問題。;-) – RobG

回答

1

不太確定你想要什麼這樣做,但是怎麼樣?

var x = // this value change constantly 
var x1 = 0 
function latchON() { 
    if (!y) { 
     x1 = x;  
    } 
    return x1; 
} 
+0

多一點的解釋可能有助於OP。 ;-) – RobG

+0

這裏你定義了函數外部的x1,所以它的值將會保留,因爲上次被修改。在你的版本中,x1是一個沒有初始值的局部變量,所以如果y爲真,你會得到NaN。 – Shiping

+0

也從你寫的內容來看,你總是期待函數返回一個值,所以return語句應該放在if塊之外。 – Shiping

相關問題