js内置函数应用---第一篇(setTimeout)

1.经典面试题(循环输出0到4,每次输出间隔1秒)

// 先用es5的方式实现一下
// bind实现
for(var i=0;i<5;i++) {
    setTimeout((function(i){
        console.log(i)
    }).bind(this, i), 1000*i)
}

// 闭包实现
for(var i=0;i<5;i++){
  (function(j){
    setTimeout(function(){
      console.log(j)
    }, 1000*j)
  })(i)
}

// es6实现,相当的简单。利用let的块作用域,其实相当于形成了一个天然的闭包
for(let i=0;i<5;i++){
    setTimeout(function(){
      console.log(i)
    }, 1000*i)
}

你可能感兴趣的:(js内置函数应用---第一篇(setTimeout))