国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 武宣县| 西贡区| 泾源县| 宁明县| 江阴市| 鄂伦春自治旗| 驻马店市| 子洲县| 天水市| 永安市| 新宁县| 易门县| 安吉县| 昆山市| 南华县| 高陵县| 永仁县| 开原市| 新营市| 昭觉县| 长丰县| 嵩明县| 富川| 巨野县| 喀什市| 那坡县| 宁乡县| 呈贡县| 利川市| 隆昌县| 旺苍县| 龙游县| 霍林郭勒市| 铜川市| 新密市| 昌宁县| 昌宁县| 囊谦县| 扎鲁特旗| 武城县| 波密县|