如何通俗易懂的理解闭包?及作用?

说到闭包,那么什么是闭包呢?
闭包(closure):闭包是一个函数。函数内部还有一个访问了外层函数变量的一个函数就是闭包了。
闭包的作用:延伸了变量的作用范围

那么如何用闭包,点击li打印当前索引号呢?
废话不多说,直接上代码

body
    ul
      li晴天/li
      li园游会/li
      li爱的飞行日记/li
      li七里香/li
      li黑色幽默/li
    /ul
  /body
  script
  // 获取dom元素
    var lis = document.querySelector("ul").querySelectorAll("li");
    // console.log(lis);
    for (var i = 0; i  lis.length; i++) {
    //立即执行函数
      ((i) = {
      // 点击li 打印当前的索引号
        lis[i].addEventListener("click", function () {
          console.log(i);
        });
      })(i);
    }
  /script

但是闭包也有闭包的缺点,变量得不到释放,会发生栈溢出,酌情使用~
技术交流,轻喷~

最新回复(0)
/jishuH7XTIZZAcPVukRSl7UpJ7o8hXGKgVaVBRTBWkh6IDAQ_3D4795380
8 简首页