打印出10个10:
function test() {
var arr = [];
for(var i = 0; i < 10; i++){
arr[i] = function () {
console.log(i);
}
}
return arr;
}
var myArr = test();
for(var j = 0; j < 10; j++){
myArr[j]();
}
解决1:let声明
for(let i = 0; i < 10; i++){
setTimeout(function timer(){
console.log(i)
})
}
解决2:立即执行函数
function test() {
var arr = [];
for(var i = 0; i < 10; i++){
(function(j){
arr[j] = function () {
console.log(j);
}
})(i)
}
return arr;
}
var myArr = test();
for(var j = 0; j < 10; j++){
myArr[j]();
}