2011-06-19 8 views
1

タイトルでは、値が以前の値のjavascriptよりも大きいか小さいかを調べる方法には苦労しています。値が以前の値よりも大きいか小さいかを調べるJavascript

変数を増分または減分するメソッドに変数を送信しているとします。

Ex1の:

value(3); 

Ex2の:

value(2); 

Ex3を:

value(4); 

そして方法...

function value(id){ 


} 

"送信者"から値を取得するとき、値が私のメソッドの他の値よりも大きいか小さいかを判断したい。最初の値は3です。2番目の値は2です。これは最初の値が新しい入力値2よりも大きくなることにつながります。

アイデアはありますか?

ありがとうございます!

答えて

6

あなたは、あなたの関数の周りにクロージャを使用することができます。

var value = (function() { 
    var previousValue = null; 
    return function(id) { 
    if (previousValue !== null && previousValue > id) 
     alert("You sent me something smaller than last time!"); 
    previousValue = id; 
    }; 
})(); 

これは持っています「value()」関数だけが保存された「previousValue」を「見る」ことができるという利点があります。他のコードは値を変更できません。これは基本的に、その宣言で行われた関数呼び出しによって暗黙的に作成された匿名オブジェクトのプライベート属性に似ています。

+0

あなたの素早い答えをありがとう!それは私の新しい機能だろうか?コールはどのように見えますか?まだ "値(2)" "値(3)"など? – Tobias

+0

それは今作動した!ご協力いただきありがとうございます! :=) – Tobias

+0

私は食料品店に走らなければなりませんでした:-)うれしいことです! (あなたの質問に対する答えは「はい」ですが、それを「値(3)」などと呼んでいます) – Pointy

0

関数の外部で変数を宣言し、その関数が呼び出されるたびに最新の値で更新します。

そして、単にそれが大きいか小さいのかどうかを判断するために、その変数の現在の値でパラメータを比較します

var current = 0; 
function value(id) { 
    //compare id with current 
    current = id; 
} 
+0

お返事ありがとうございました!それは私がやろうとしたことですが、私の "現在の" IDはIDと同じですので、私はそれらを比較できません。 – Tobias

関連する問題