setTimeout循环传参数几种方式
for(var i=0;i<5;i++){
        setTimeout(function(){
            console.log(`错误 ${i}`);
        },0)
    }
这种错误的,参数不会变!
以下几种方式正确。
 for(var i=0;i<5;i++){
        (function(i){
            setTimeout(function(){
                console.log(`闭包 ${i}`);
            },0)
        })(i);
    }
    for(let i=0;i<5;i++){
        setTimeout(function(){
            console.log(`let ${i}`);
        },0)
    }
    for(var i=0;i<5;i++){
        setTimeout(function(i){
            console.log(`bind ${i}`);
        }.bind(null,i),0)
    }
    for(var i=0;i<5;i++){
        setTimeout(function(i){
            console.log(`参数 ${i}`);
        },0,i)
    }
间隔3秒执行,注意i*3000:
 for(var i=0;i<5;i++){
        (function(i){
            setTimeout(function(){
                console.log(`闭包 ${i}`);
                //alert("闭包"+ i);
            },i*3000)
        })(i);
    }
setInterval是一直循环的 到4重新执行:
var i = 0;
setInterval(function(){
if( i > 4 ){
i = 0;
}
List(i);
i++;
},5000);
function List(i){
document.write(i+"<br />");
}
setTimeout循环传参数几种方式的更多相关文章
- 浅谈Spring解决循环依赖的三种方式
		引言:循环依赖就是N个类中循环嵌套引用,如果在日常开发中我们用new 对象的方式发生这种循环依赖的话程序会在运行时一直循环调用,直至内存溢出报错.下面说一下Spring是如果解决循环依赖的. 第一种: ... 
- Spring 循环依赖的三种方式(三级缓存解决Set循环依赖问题)
		本篇文章解决以下问题: [1] . Spring循环依赖指的是什么? [2] . Spring能解决哪种情况的循环依赖?不能解决哪种情况? [3] . Spring能解决的循环依赖原理(三级缓存) 一 ... 
- T-SQL 循环表的一种方式
		原文来自:https://www.lesg.cn/netdaima/sqlservert-sql/2016-463.html SsqlServer 中循环表有几种方式 1.临时表 2.游标 3-. 下 ... 
- ios页面间传递参数四种方式
		ios页面间传递参数四种方式 1.使用SharedApplication,定义一个变量来传递. 2.使用文件,或者NSUserdefault来传递 3.通过一个单例的class来传递 4.通过Dele ... 
- curl文件上传有两种方式,一种是post_fileds,一种是infile
		curl文件上传有两种方式,一种是POSTFIELDS,一种是INFILE,POSTFIELDS传递@实际地址,INFILE传递文件流句柄! );curl_setopt($ch, CURLOPT_PO ... 
- python中字典的循环遍历的两种方式
		开发中经常会用到对于字典.列表等数据的循环遍历,但是python中对于字典的遍历对于很多初学者来讲非常陌生,今天就来讲一下python中字典的循环遍历的两种方式. 注意: python2和python ... 
- Java文件上传的几种方式
		文件上传与文件上传一样重要.在Java中,要实现文件上传,可以有两种方式: 1.通过Servlet类上传 2.通过Struts框架实现上传 这两种方式的根本还是通过Servlet进行IO流的操作. 一 ... 
- JavaScript中匿名函数循环传参数(不触发函数的执行)
		我们都知道定义函数的方式有两种,一种是函数声明,另一种是函数表达式,函数声明的语法是这样的: function functionName(arg0, arg1, arg2) { // 函数体 } 函数 ... 
- PHP数组循环遍历的四种方式
		1.使用for循环遍历数组 conut($arr);用于统计数组元素的个数. for循环只能用于遍历,纯索引数组!!!! 如果存在关联数组,count统计时会统计两种数组的总 ... 
随机推荐
- Java 控制结构与方法
			控制结构: 控制结构是对我们程序执行顺序的一种控制,它规定了我们语句块的执行顺序和流程. 分支结构: 关系运算符和逻辑运算符: 关系运算符:== != > >= < <=逻辑运 ... 
- Unity切换到安卓平台Shader丢失(opengl)
			Unity安卓平台shader平台丢失 Unity的工程切换到Android平台后,运行游戏出现shader丢失 解决办法:在Unity桌面图标的快捷方式后添加 -force-gles20 示例:&q ... 
- web安全基础第一天
			编码:url编码 base64编码:末尾有俩个==号 md5加密:16位或者32位 1.whois查询 :站长邮箱,联系人,备案 旁站c段&子域名. ( 大数据平台和bing接口查询 :Zo ... 
- js坚持不懈之11:focus()方法
			主要是用于获取焦点,自动把光标放到此组件上面,无须用户再次操作. 示例: <html> <head> <p>1. 长度限制</p> <form n ... 
- 自己实现一个nullptr
			一 具体实现 代码(c++) const class nullptr_t { public: template<class T> inline operator T*() const { ... 
- diskpart 的简单使用
- Graphic
			画圆操作 package demo1; import java.awt.Graphics; import javax.swing.*; import javax.swing.JPanel; publi ... 
- PY3_线程红绿灯
			# Author:jum_# event 事件监测 红灯停绿灯行 线程标志位# 事件主要提供了三个方法wait.clear.set# clear:将“Flag”设置为False#set:将“Flag” ... 
- Python进阶8---面向对象基础1
			面向对象 语言的分类 Python的类 定义 class ClassName: pass class MyCalss: """A example class"& ... 
- Alan Turing的纪录片观后感
			清明假期,火车上闲着,上B站看了图灵的纪录片 好吧,感想就两个词,数字化 和 自动化 
