javascript高级--闭包

1.闭包

1.1什么是闭包

全局变量var声明的会污染环境,局部变量声明的let无法永久存储于内存,于是出现了闭包

闭包就是一个函数嵌套在一个函数里面,并在这个大函数里面返回到这个小函数

    <script>
        function fa(){
            let a=10;
            function fb(){
                a--;
                console.log(a);
            }
            return fb;
        }
        var fn=fa();//一调用就输出9 8 7 ...
        //用完后,我们可以把他释放掉,不用担心内存泄露
        fn=null;
    </script>

闭包要满足四个条件

1.有函数嵌套(一个函数嵌套在一个函数里面)

2.内部函数引用外部作用域的变量参数(fb函数引用fa的a)

3.返回值是函数(fb)

4.创建一个对象函数,让其长期驻留(var fn=fa())

1.2为什么要用闭包

因为全局变量容易污染环境,而局部变量又无法长期贮存内存

于是我们徐娅一种机制,既能长期保存变量又不污染全局,这就是闭包

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值