[英]“function is not defined” when using setTimeout?
無論出於什么原因,我都無法重復執行此功能。 一旦獲得setTimeout,它就會吐出“未捕獲的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.