国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

js實(shí)現(xiàn)異步循環(huán)實(shí)現(xiàn)代碼

2019-11-20 10:35:40
字體:
供稿:網(wǎng)友

問題
實(shí)現(xiàn)異步循環(huán)時(shí),你可能會(huì)遇到問題。

讓我們?cè)囍鴮懸粋€(gè)異步方法,一次循環(huán)打印一次循環(huán)的索引值。

<script>for(var i = 0; i < 5; i++){setTimeout(function(){document.writeln(i);document.writeln("<br />");},1000);}</script>

如上程序的輸出為:

5
5
5
5
5

原因

每次時(shí)間結(jié)束(timeout)都指向原始的i,而并非它的拷貝。所以,for循環(huán)使i增長(zhǎng)到5,之后timeout運(yùn)行并調(diào)用了當(dāng)前i的值(也就是5)。

解決方法

有幾個(gè)不同的方式可以拷貝i。最普通且常用方法是通過聲明函數(shù)來建立一個(gè)閉包,并將i傳給此函數(shù)。我們這里使用了自調(diào)用函數(shù)。

運(yùn)行代碼

<script>for(var i = 0; i < 5; i++){(function(num){setTimeout(function(){document.writeln(num);document.writeln("<br />");},1000);})(i);}</script>

輸出

0
1
2
3
4

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 达孜县| 祥云县| 三明市| 青龙| 景谷| 子洲县| 广州市| 海晏县| 体育| 长兴县| 辉南县| 永新县| 嘉荫县| 海门市| 新民市| 寿阳县| 皮山县| 广州市| 女性| 潜江市| 石楼县| 衡山县| 玉龙| 梅州市| 香港| 阜宁县| 浏阳市| 江川县| 如东县| 新绛县| 波密县| 阳山县| 农安县| 临西县| 司法| 滁州市| 资溪县| 阳西县| 略阳县| 平安县| 兴义市|