不管什么原因,我不能让这个函数重复。一旦获得setTimeout,它就会弹出“uncaught referenceerror:getnumbers未定义(其中getnumbers只是变量的名称)。
$(文档).ready(函数(){
变量getnumbers={
计数位数:函数(){
if(sessionStorage.counter=“NaN”){
sessionStorage.counter=“0”;
}
其他{
sessionStorage.counter=数字(sessionStorage.counter)+1;
}
$(“#result”).text(“counter:”+sessionStorage.counter);
setTimeout(“getnumbers.countDigit()”,3000);
},
_初始化:函数(){
getnumbers.countDigit();
}
};
获取数字;
})
讽刺的是,如果我刷新页面,计数器就会工作,所以我知道它只是停留在这一行。我会错过什么?
谢谢!

最佳答案

带有字符串参数的setTimeout只是一个全局eval。当它试图计算getnumbers.countDigit()时,它将在全局范围内进行计算,并且不再具有访问getnumbers的权限。
解决方案:不要传入字符串。相反,请尝试以下操作:

setTimeout(getnumbers.countDigit, 3000);

关于javascript - 使用setTimeout时“功能未定义”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9731556/

10-09 14:04