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)
}