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)