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

本文仅提供参考,是本人闲时所写笔记,如有错误,还请赐教,作者:阿蒙不萌,大家可以随意转载

原文地址:https://www.cnblogs.com/huchong-bk/p/11757786.html