什么是闭包,闭包的好处
闭包 : 再函数外部可以访问函数内部的变量
好处:
1. 可以在函数玩不访问函数内部的变量
2. 这些变量的值始终保存在变量中,不会被清除
坏处: 容易造成内存泄漏
闭包的相关应用
利用 闭包实现点击li 弹出对应的下标
<ul id='ul'>
<li>a</li>
<li>b</li>
<li>c</li>
</ul>
第一种 匿名函数自执行
window.onload=function(){
var oul =document.getElementById("ul")
var olis =oul.children
console.log(olis);
for(var i=0;i<olis.length;i++){
(function(i){
olis[i].onclick=function(){
alert(i)
}
})(i)
}
}
第二种方法 保存变量法
// 思路 保存 变量法 把所有的 下标 保存 点击 弹出
window.onload = function () {
var oul = document.getElementById("ul")
var olis = oul.children
for(var i =0 ; i< olis.length;i++){
olis[i].id =i
olis[i].onclick=function(){
console.log(this.id);
}
}
}
网友评论