1

スクリプトを実行すると、書き出した変数が 1 回しか実行されないことに気付きました。一方、関数は複数回呼び出すことができます。

関数のように変数を複数回呼び出す方法はありますか? 申し訳ありませんが、これにはコードがありません。ただの質問です。

編集:明確にするために、関数に使用されるグローバル変数があります。ただし、この変数を別の関数から呼び出そうとすると、「ローカル」と見なされるため、登録されません。

ただし、グローバル変数を自由に呼び出すことができれば、これで問題が解決すると思います。

// BLITZ SKILL  // <-- My 2nd Function trying to use my global variable counter
document.getElementById("blitz").addEventListener('click', function(){
    var counter = setInterval(timer, 1000); // Trying to restart timer, does 
                                            // not register counter variable.
    var damage = Math.floor(Math.random() * characterstats.strength);
    document.getElementById("energy").innerHTML = character.energy;

    if ((damage <= 0) && (character.energy >= 5)) {
        addMessage("You miss the dragon!");
        character.energy -= 5;
    }

    else if (character.energy <= 4) {
        addMessage("Not enough energy!")
    }

    if ((damage >= 1) && (character.energy >= 5)) { 
        dragon.hp -= damage;
        document.getElementById("npchp").innerHTML = dragon.hp;
        addMessage("You hit the dragon for " + damage + " hp!");
        character.energy -= 5;
    }
    document.getElementById("energy").innerHTML = character.energy;
});

// 7. CODE TESTING AREA
var counter = setInterval(timer, 1000);  <-- MyGlobal Variable

function timer() {  //
    var count = character.energy;
    count += characterstats.energyregen;
    if (count >= 35) {
        clearInterval(counter);
    }
    document.getElementById("energy").innerHTML = count;
    character.energy = count;
}
4

1 に答える 1

3

var を使用して、関数内に counter という新しいローカル変数を作成しています。

新しい変数を定義する「var」を使用せずに、グローバルをそのまま参照するだけで、

document.getElementById("blitz").addEventListener('click', function(){
    counter = setInterval(timer, 1000); // <-- Trying to restart timer, does not
    ...
于 2013-10-17T01:25:16.443 に答える