簡體   English   中英

使用setTimeout時“功能未定義”?

[英]“function is not defined” when using setTimeout?

無論出於什么原因,我都無法重復執行此功能。 一旦獲得s​​etTimeout,它就會吐出“未捕獲的referenceerror:未定義getnumbers(其中,getnumbers只是變量的名稱。

$(document).ready(function(){


    var getnumbers = {

        countDigit: function(){

            if (sessionStorage.counter=="NaN"){
                sessionStorage.counter="0";                                   
            }
            else {
                sessionStorage.counter=Number(sessionStorage.counter)+1;

            }

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

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

        },

        _init: function(){
            getnumbers.countDigit();    
        }
    };

    getnumbers._init();     

})

具有諷刺意味的是,如果刷新頁面,計數器將起作用,因此我知道它只是停留在那一行上。 我可能會缺少什么?

謝謝!

帶有字符串參數的setTimeout只是一個全局eval 當它嘗試評估getnumbers.countDigit() ,將在全局范圍內對其進行評估,並且不再有權訪問getnumbers

解決方案:不要傳入字符串。 相反,請嘗試以下操作:

setTimeout(getnumbers.countDigit, 3000);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM