提问:
- 这段代码里面有闭包么?
- 是不是引用了函数外部的变量就算闭包?
代码:
for (var i = 0; i < btns.length; i++) {
(function(j) {
btns[j].onclick = function(i) {
console.log("第" + (i + 1) + "个");
};
})(i);
}
提问:
代码:
for (var i = 0; i < btns.length; i++) {
(function(j) {
btns[j].onclick = function(i) {
console.log("第" + (i + 1) + "个");
};
})(i);
}
10 回答11.2k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
理解闭包,就需要理解JS垃圾回收(GC)机制,这篇文章写得比较具体。
就楼主的问题而言,答案是
var j = i