时间:2021-07-01 10:21:17 帮助过:6人阅读
我在整理闭包问题的时候,看到一道前端面试题
for (var i = 0; i < 10; i++) {
setTimeout(function() {
console.log(i);
}, 0);
}
了解 js 的异步机制的都知道,
输出结果是: 10 10 10 ... 10
然后面试官又问 如果希望得到的是0 1 2 ... 9
,如何能够解决这个问题for (var i=0; i < 10; i++) {
(function (temp) {
setTimeout(function() {
console.log(temp);
}, 0);
})(i);
}
如果有其他解决方法,亲爱的朋友们可以评论补充
再补充一道闭包问题:
这道题可以较深理解闭包机制,解决这道题比较重要的是理解被保护的数据是哪一个,运行的顺序之类的,
输出:我在这就不多做解释了,想一下很容易通的
以上就是关于闭包问题的详细介绍(二)的详细内容,更多请关注Gxl网其它相关文章!