Rumah > hujung hadapan web > tutorial js > js melaksanakan kemahiran pelaksanaan kod_javascript gelung tak segerak

js melaksanakan kemahiran pelaksanaan kod_javascript gelung tak segerak

WBOY
Lepaskan: 2016-05-16 15:15:27
asal
1362 orang telah melayarinya

Soalan
Anda mungkin menghadapi masalah apabila melaksanakan gelung tak segerak.

Mari cuba menulis kaedah tak segerak yang mencetak nilai indeks gelung sekali dalam gelung.

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

Output program di atas ialah:

5
5
5
5
5

Sebab

Setiap tamat masa (masa tamat) menunjuk kepada i asal, bukan salinannya. Jadi, gelung for menambah i kepada 5, kemudian tamat masa berjalan dan memanggil nilai semasa i (iaitu 5).

Penyelesaian

Terdapat beberapa cara berbeza untuk menyalin i. Kaedah yang paling biasa dan biasa digunakan ialah membuat penutupan dengan mengisytiharkan fungsi dan menghantar i kepada fungsi ini. Kami menggunakan fungsi panggilan kendiri di sini.

Jalankan kod

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

Output

0
1
2
3
4

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan