数码资讯
一个解决JS计时器setTimeout不调用局部变量
定时器的使用Javascript的setTimeout在一般如下。在调用beginrotate,它进入一个过程,执行rotateloop定期,如下: 复制代码代码如下所示: var角度= 0; 功能rotateloop(){ 如果(角<360){ 角度+; 使用角度 /…… setTimeout(r
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
定时器的使用Javascript的setTimeout在一般如下。在调用beginrotate,它进入一个过程,执行rotateloop定期,如下:
复制代码代码如下所示:
var角度= 0;
功能rotateloop(){
如果(角<360){
角度+;
使用角度
/……
setTimeout(rotateloop()
}
}
功能beginrotate(){
做某事
/……
setTimeout(rotateloop()
}
这个代码的一个问题是生成一个全局变量角,这显然不是一个好的编程习惯。因此,我们考虑使用嵌入式函数将代码更改为以下代码:
复制代码代码如下所示:
功能beginrotate(){
var角度= 0;
功能rotateloop(){
如果(角<360){
角度+;
使用角度
/……
setTimeout(rotateloop()
}
}
做某事
/……
setTimeout(rotateloop()
}
在那之后,发现Javascript是错的,而rotateloop找不到它。显然,setTimeout不找到rotateloop的地方嵌入功能。这里我们可以稍作修改来解决这个问题。代码如下:
复制代码代码如下所示:
功能beginrotate(){
var角度= 0;
功能rotateloop(){
如果(角<360){
角度+;
使用角度
/……
setTimeout(rotateloop,100);
}
}
做某事
/……
setTimeout(rotateloop,100);
}
你只需要改变第一的setTimeout函数的参数对象,而不是一个字符串,它的确定。
复制代码代码如下所示:
var角度= 0;
功能rotateloop(){
如果(角<360){
角度+;
使用角度
/……
setTimeout(rotateloop()
}
}
功能beginrotate(){
做某事
/……
setTimeout(rotateloop()
}
这个代码的一个问题是生成一个全局变量角,这显然不是一个好的编程习惯。因此,我们考虑使用嵌入式函数将代码更改为以下代码:
复制代码代码如下所示:
功能beginrotate(){
var角度= 0;
功能rotateloop(){
如果(角<360){
角度+;
使用角度
/……
setTimeout(rotateloop()
}
}
做某事
/……
setTimeout(rotateloop()
}
在那之后,发现Javascript是错的,而rotateloop找不到它。显然,setTimeout不找到rotateloop的地方嵌入功能。这里我们可以稍作修改来解决这个问题。代码如下:
复制代码代码如下所示:
功能beginrotate(){
var角度= 0;
功能rotateloop(){
如果(角<360){
角度+;
使用角度
/……
setTimeout(rotateloop,100);
}
}
做某事
/……
setTimeout(rotateloop,100);
}
你只需要改变第一的setTimeout函数的参数对象,而不是一个字符串,它的确定。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。