変数が必要です。変数は、値を格納できる小さなボックスのようなものです。この場合、関数myClick
に最後に渡された値を格納することができます。 JavaScriptで
、あなたはこのような変数を定義することができます
var lastClickedValue;
あなたは、その変数に値を「置く」ことができます。あなたの名前をそこに入れたいとしましょう。あなたはこれを行うでしょう:
lastClickedValue = 'sams5817';
ここでトリッキーなビットです。変数には「スコープ」があります。あなたはそれを「生涯」と考えることができます。変数がスコープの終わりに達すると、変数を読み書きできなくなります。あたかも決してそうでないかのようです。関数はスコープを定義します。関数内で定義した変数は、関数の最後に消えます。たとえば、
function myClick(value)
{
var lastClickedValue;
alert('lastClickedValue is = ' + value);
lastClickedValue = value;
}
これはほぼ正しいと思われますか?変数を宣言し、最後の値を表示し、それを新しい値で更新しました。
しかし、lastClickedValue
が関数myClick
で宣言されていたので、その関数の最後に達したら、それはなくなりました。したがって、次回にmyClick
と呼ぶと、lastClickedValue
がもう一度作成されます。それは空になります。これを「初期化されていない」変数と呼びます。
だから何が問題なのですか?私たちはmyClick
の終わりを過ぎても値を覚えようとしています。しかし、myClick
の中にlastClickedValue
と宣言したので、myClick
の末尾には存在しません。
解決策は、myClick
が実行された後に、lastClickedValue
が引き続き存在することを確認することです。
したがって、私たちは異なる範囲でlastClickedValue
を護る必要があります。幸運なことに、「グローバルスコープ」と呼ばれる大きなスコープがあります。ページが読み込まれてから、ユーザーが別のWebページに移動するまで存在します。だからこのようにしましょう:
var lastClickedValue;
function myClick(value)
{
alert('lastClickedValue is = ' + value);
lastClickedValue = value;
}
これは非常に小さな違いです。変数lastClickedValue
の宣言を関数myClick
の外に移動しました。それは外にあるので、myClick
の後に既存のものが維持されます。つまり、myClick
と呼び出すたびに、lastClickedValue
がそこに残ることになります。
これは、myClick
に渡された最後の値が何だったのかを知らせます。
最後に、Javascriptチュートリアルのいくつかを探すことをお勧めします。私はいくつかの良いものをお勧めしたいと思っていますが、インターネットでいくつか見つけることができます。あなたがやっていることを理解する前にプログラムを書こうとすると、自分の能力よりも少ない仕事を自分で作り出すことになります。がんばろう!
..:たとえば、2つの数値を追加し、実行中の合計を保持機能 doSumを定義し、ここでのコードを考えます – Nanne