for(var i=0;i<10;i++){

    setTimeout(function(){

      console.log(i)//10个10

    },1000) }

 

遇到这种问题 如何用解决呢

for(var i=0;i<10;i++){

  ((j)=>{

    setTimeout(function(){

      console.log(j)//1-10

    },1000)

})(i)

}

原理是 声明了10个自执行函数,保存当时的值到内部

相关文章: