zoukankan      html  css  js  c++  java
  • 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 />");
    }
  • 相关阅读:
    ZROI2018提高day9t1
    p2114 起床困难综合症
    EZOJ #78
    Linux JDK配置
    jps命令
    虚拟机 网卡模式配置
    redhat下yum命令安装(替换为centos yum命令)
    URL编码
    Query DSL(2)----Full text queries
    Query DSL(1)
  • 原文地址:https://www.cnblogs.com/feng18/p/9485249.html
Copyright © 2011-2022 走看看