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))
    }

 

posted @ 2020-02-28 21:01  盼星星盼太阳  阅读(135)  评论(0)    收藏  举报