最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js 定時器setTimeout無法調(diào)用局部變量的解決辦法

 更新時間:2013年11月28日 17:31:44   作者:  
javascript中定時器setTimeout無法調(diào)用局部變量,只需要將setTimeout的第一個參數(shù)改成函數(shù)對象,而不是字符串,就可以了
javascript中定時器setTimeout的用法一般如下,調(diào)用beginrotate之后就進(jìn)入定時執(zhí)行rotateloop的一個過程,如下代碼:
復(fù)制代碼 代碼如下:

var angle = 0;

function rotateloop() {
if (angle < 360) {
angle++;
//use angle
//......
setTimeout("rotateloop()", 100);
}
}

function beginrotate() {
//do something
//......
setTimeout("rotateloop()", 100);
}

這段代碼有一個問題,就是產(chǎn)生了一個全局變量angle,這顯然不是好的編程習(xí)慣,所以我們想到使用內(nèi)嵌函數(shù)的方式,將代碼改成如下:
復(fù)制代碼 代碼如下:

function beginrotate() {

var angle = 0;

function rotateloop() {
if (angle < 360) {
angle++;
//use angle
//......
setTimeout("rotateloop()", 100);
}
}
//do something
//......
setTimeout("rotateloop()", 100);
}

這樣子改了之后,發(fā)現(xiàn)javascript報錯了,rotateloop找不到,顯然setTimeout沒有找到rotateloop這個局部內(nèi)嵌函數(shù),這里只要稍微改一下就可以解決這個問題了,代碼如下:
復(fù)制代碼 代碼如下:

function beginrotate() {

var angle = 0;

function rotateloop() {
if (angle < 360) {
angle++;
//use angle
//......
setTimeout(rotateloop, 100);
}
}
//do something
//......
setTimeout(rotateloop, 100);
}

只需要將setTimeout的第一個參數(shù)改成函數(shù)對象,而不是字符串,就可以了。

相關(guān)文章

最新評論

黄浦区| 即墨市| 宁远县| 南丹县| 太康县| 铜梁县| 漳浦县| 枞阳县| 五家渠市| 临高县| 迁安市| 青海省| 许昌县| 合水县| 于都县| 怀来县| 镇远县| 浙江省| 朝阳区| 永胜县| 内黄县| 隆林| 祥云县| 农安县| 吉林市| 大冶市| 佛学| 蓬溪县| 禄丰县| 利辛县| 仁化县| 资阳市| 田阳县| 屯昌县| 黎城县| 庆安县| 临猗县| 彩票| 含山县| 星子县| 普兰店市|