JavaScript的闭包
JavaScript的闭包
通过建立一个不被销毁的存储空间,在函数外部调用和使用函数内部的数据;
定义闭包
1.定义一个函数A,并设置返回值是函数B;
2.函数B使用函数A定义的局部变量;
3.在函数A外面引用函数A,并执行函数B;
闭包优缺点
1.建立一个不被销毁的存储空间/占用内存;
2.通过闭包,在函数外部访问内部变量/变量泄露(存在安全问题);
3.保护私有变量;
function funA() { let a = 100; return function funB() { return a; } } var f1 = funA(); var f2 = f1();
闭包demo:
点击li标签,输出对应下标;(利用立即执行函数)
<ul>
<li>我是第一个li</li>
<li>我是第二个li</li>
<li>我是第三个li</li>
<li>我是第四个li</li>
<li>我是第五个li</li>
</ul>
var liList = document.querySelectorAll("li");
for (var i = 0; i < liList.length; i++) {
liList[i].addEventListener("click", (function (i) {
return function () {
console.log(i);
}
})(i))
}

浙公网安备 33010602011771号