tlf*_*low 1 javascript html5 sessionstorage
无论出于何种原因,我无法重复此功能.一旦它获得了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);
Run Code Online (Sandbox Code Playgroud)