for (var i = 0; i< 5; i++){
      (function(){
        console.log(i)
      })(i)
    }
    for (var i = 0; i< 5; i++){
      (function(){
        console.log(Number(this))
      }.bind(i))()
    }
    for (var i = 0; i< 5; i++){
      (function(){
        console.log(Number(this))
      }.call(i))
    }
    for (var i = 0; i< 5; i++){
      new Promise(()=>{
        console.log(i)
      })
    }
 
还有一种就是将var改成let这道题早就想写下了,
祝你早日收到offer