老师您看我这样理解对么?
来源:2-9 编程练习
Walker游游
2019-11-16 15:59:01
一、JS没有块级作用域,所以for循环内不会保留i的值,需要通过创建函数,保存i的值;
二、这里的闭包,其实是将“在循环外创建一个函数,在循环内调用”,改成了“在循环内创建匿名函数并自己调用”。
var lis=document.getElementsByTagName("li");
for(var i=0,len=lis.length;i<len;i++){
(function(n){
lis[n].onclick = function () {
alert(n);
}
})(i);
}
// for (var i = lis.length - 1; i >= 0; i--) {
// fn(i);
// }
// function fn(n) {
// lis[n].onclick = function () {
// alert(n);
// }
// }
1回答
好帮手慕糖
2019-11-16
同学你好,理解是对的,代码实现也是可以的,继续加油!
祝学习愉快!
相似问题