无论出于何种原因,我都无法重复此功能。一旦它获得了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(); })
具有讽刺意味的是,如果我刷新页面计数器有效,那么我知道它只是卡在那一行上。我能错过什么?
谢谢!
答案 0 :(得分:6)
setTimeout
只是一个全局eval
。当它尝试评估getnumbers.countDigit()
时,会在全局范围内对其进行评估,并且无法再访问getnumbers
。
解决方案:不要传入字符串。相反,试试这个:
setTimeout(getnumbers.countDigit, 3000);