知识大全 js 定时器setTimeout无法调用局部变量的解决办法

Posted

篇首语:习惯使我们双手机巧,使头脑笨拙。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 js 定时器setTimeout无法调用局部变量的解决办法相关的知识,希望对你有一定的参考价值。

js 定时器setTimeout无法调用局部变量的解决办法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

javascript中定时器setTimeout的用法一般如下 调用beginrotate之后就进入定时执行rotateloop的一个过程 如下代码

  复制代码 代码如下:

  var angle = ; function rotateloop() if (angle < ) angle++; //use angle // setTimeout( rotateloop() ); function beginrotate() //do something // setTimeout( rotateloop() );

这段代码有一个问题 就是产生了一个全局变量angle 这显然不是好的编程习惯 所以我们想到使用内嵌函数的方式 将代码改成如下

  复制代码 代码如下:

  function beginrotate() var angle = ; function rotateloop() if (angle < ) angle++; //use angle // setTimeout( rotateloop() ); //do something // setTimeout( rotateloop() );

这样子改了之后 发现javascript报错了 rotateloop找不到 显然setTimeout没有找到rotateloop这个局部内嵌函数 这里只要稍微改一下就可以解决这个问题了 代码如下

  复制代码 代码如下:

只需要将setTimeout的第一个参数改成函数对象 而不是字符串 就可以了 cha138/Article/program/Java/Javascript/201401/30272

相关参考