💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
>[danger]**1. 概念** >[info]闭包就是两个函数,一个函数包含另一个函数,在函数外使用函数内的局部变量,并且在函数执行后,内存不被释放,外面的函数就叫闭包; >[danger]**2. 在函数外调用函数内的局部变量** ~~~ function t1(){ //定义一个局部变量 var a = 999; //定义一个可以获取局部变量的函数 function t2(){ console.log(a++); } return t2; } f = t1(); // 将t1()函数返回赋值给f,那么f = t2; e = f(); // e = t2(); console.log(e); //调用t2函数第1次 1; console.log(e); //调用t2函数第2次 2; console.log(e); //调用t2函数第3次 3; ~~~ >[danger]**3. 练习(点击下面的li标签,弹出它的下标)** ~~~ <ul> <li>1</li> <li>2</li> <li>3</li> </ul> ~~~ ~~~ function outlog(i){ function inlog(){ alert(i); } return inlog; } //捕获所有的li标签DOM节点对象 var lis = document.getElementsByTagName('li'); for(var i = 0;i < lis.length;i++){ //绑定事件,点击某个li标签的时候,执行outlog函数 lis[i].onclick = outlog(i); } ~~~