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

说到闭包,那么什么是闭包呢?
闭包(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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值