2019独角兽企业重金招聘Python工程师标准>>>
打印出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]();
}
转载于:https://my.oschina.net/parchments/blog/3033914
最后
以上就是糊涂板凳最近收集整理的关于解决闭包问题的全部内容,更多相关解决闭包问题内容请搜索靠谱客的其他文章。
发表评论 取消回复