闭包问题for(var i=0;i<10;i++){ setTimeout(function(){ console.log(i)//10个10 },1000) }

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个自执行函数,保存当时的值到内部

猜你喜欢

转载自www.cnblogs.com/huchong-bk/p/11757786.html