2017-01-22 6 views
1

Javascriptで「x」の値を格納する「ラッチ」関数を実装する方法はありますか? )2番目の変数 'y'(ブール型、ユーザー対話)の状態によって異なりますか?このような何かを:変数を別の変数のブール状態に応じて値を記憶させる

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

問題は、「Y」は「真」の状態に戻ったとき、「X1」は、格納された値を失い、再び「未定義」になることである、と私は数学を行うには、その値を必要とします後で操作(減算)します。誰もがこれを解決する方法を知っていますか(私はJavascriptの非常にnoobです)?ここで

私が今までに達しコード:

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

申し訳ありませんが、私は非常によく説明し、私の悪い英語のため申し訳ありませんあまりにも(ない私の母国語)ができなかった場合。

編集 - 私を助けようとした皆様に感謝します。私は最終的に値を格納するためにクッキーを使用して解決しました(私はそれを覚えておく前に一週間を無駄にしました:しかし、決して後で...)、このページのいくつかの指示に続いて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

関連する問題