1

何らかの理由で、この関数を繰り返すことができません。setTimeout を取得すると、「キャッチされていない参照エラー: getnumbers が定義されていません (getnumbers は単なる変数の名前です。

$(document).ready(function(){


    var getnumbers = {

        countDigit: 関数(){

            if (sessionStorage.counter=="NaN"){
                sessionStorage.counter="0";                                   
            }
            そうしないと {
                sessionStorage.counter=Number(sessionStorage.counter)+1;

            }

            $("#result").text("counter: " +sessionStorage.counter);

            setTimeout("getnumbers.countDigit()",3000);             

        }、

        _init: 関数(){
            getnumbers.countDigit();    
        }
    };

    getnumbers._init();     

}))
    

皮肉なことに、ページを更新するとカウンターが機能するので、その 1 行でスタックしていることがわかります。何が欠けている可能性がありますか?

ありがとう!

4

1 に答える 1

6

setTimeout文字列引数付きは単なるグローバルevalです。を評価しようとするとgetnumbers.countDigit()、グローバル スコープで評価され、 にアクセスできなくなりますgetnumbers

解決策:文字列を渡さないでください。代わりに、これを試してください:

setTimeout(getnumbers.countDigit, 3000);
于 2012-03-16T03:47:46.987 に答える