闭包随处可见吧,但往往会涉及异步问题
(function cc(){
var i ,arr=[];
i = 0;
for(i;i<3;i++){
arr.push(function(){
console.log(i)
})
}
arr[0](); // 3
arr[1](); // 3
arr[2](); // 3
//函数异步
})()
// var 换成 let
(function cc(){
let i ,arr=[];
i = 0;
for(i;i<3;i++){
arr.push(function(){
console.log(i)
})
}
arr[0](); // 3
arr[1](); // 3
arr[2](); // 3
})()
要实现逐步打印
(function cc(){
let i ,arr=[];
i = 0;
for(i;i<3;i++){
(function(i){
console.log(i)
})(i)
}
// 0
// 1
// 2
})()
(function cc(){
let i ,arr=[];
i = 0;
for(i;i<3;i++){
(function(i){
setTimeout(()=>{console.log(i)},1000)
})(i)
}
// 0
// 1
// 2
})()