什么是js的闭包

什么是js的闭包

闭包是js的一种语法特性,注意它不是函数或者对象!!!

简单的来说,当一个函数调用了函数外面的自由变量时,这里就形成了闭包也就是说

闭包 = 函数+自由变量

这里我们简单的说一下什么是自由变量

对于一个函数来说,变量分为了全局变量、本地变量(局部变量)、自由变量。也就是说一个变量前两者,那它就是自由变量。好了,我们接着讲闭包

如何实现一个闭包呢,举个例子

const fn = function {
    let num
    const add = ()=>{
        num += 1
    }
    return add
}()
//这里的num和add就形成了一个闭包

那么闭包解决了什么问题

  1. 避免了污染全局环境
  2. 提供了局部变量的间接访问
  3. 维持变量,使其不被垃圾回收

优点:简单好用

缺点:闭包的使用不当会造成内存泄漏

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值