1

私のhtmlページには、クリックすると関数を呼び出すボタンが表示されます。クリックするとメッセージが表示され、ボタンが正しく機能することを確認しました。グローバル変数を変更するためにこの関数を作成しましたが、htmlページの別のボタンをクリックして変数の値を表示すると、変数は関数を使用して設定した値に変更されていません。以下の私のコードで誰かが問題を見つけることができますか?

    var a = 5;
    var b = 16;
    var c = 27;

    function reset(){
    a = 0;
    b = 0;
    c = 0;
    }

関数を呼び出すための私のhtmlコード:

   <!DOCTYPE HTML>

   <html>
   <center>
   <script type="text/javascript" src="game.js" > </script>
   <form>
   <input type="button" value="Reset Variables" style="width:250px;height:50px" onclick="reset()" >
   </form>
   </html>

変数を表示する Javascript コード:

    function display(){

    document.write("A is equal to " + a + "<br/>");
    document.write("B is equal to " + b + "<br/>");
    document.write("C is equal to " + c );

}

変数を表示するための HTML

   <!DOCTYPE HTML>

   <html>
   <center>
   <script type="text/javascript" src="game.js" > </script>
   <form>
   <input type="button" value="Show Variables" style="width:250px;height:50px" onclick="display()" >
   </form>
   </html>
4

2 に答える 2

0

関数名を reset_vars などに変更します。reset() は、フォームのリセットに使用される組み込みの DOM 関数です。

http://www.w3schools.com/jsref/met_form_reset.asp

ローカル変数が定義されていない限り、グローバル変数が関数内で使用されている場合、競合は発生しません。このような場合、window.variable_name を使用してグローバル変数にアクセスします。

于 2013-04-08T22:18:33.417 に答える
0

関数スコープでその変数をアサートしているため、それは機能しません。ただし、変数は現在グローバル スコープ (ウィンドウ) に格納されているため、次のコードは機能します。

var a = 5;
function reset() {
    console.log(window.a); // 5
    window.a = 10;
}
reset();
console.log(a); // 10
于 2013-04-08T21:41:06.993 に答える