JavaScript~闭包概念详解

        function a(){
            var b = 10;
            return function c(){
                b++;
                console.log(b);
            }
        }
        var nn = a();
        nn();
        nn();

上述代码为简单的闭包

闭包简单来说就是函数里面套函数,函数内部直接或者间接返回一个函数 , 内部函数访问外部函数的变量 , 用上述代码说明

变量nn接收的是外部函数a的返回值-->内部函数c(函数c为函数a的闭包函数) , nn()调用的时候,执行函数c中的代码 , b++在自身中没有找就上一级作用域 var b = 10 ; 访问函数内部私有变量b , 不需要在全局中占一位的全局变量 ,不污染全局,依靠闭包函数访问其私有变量 , 同时在外部多次调用,每次调用形成新的局部作用域 , 互相不受影响(第一次调用nn输出11 , 接着再次调用输出12) , 但是若多次调用缓存数据会造成内存泄漏不参与垃圾回收机制,一个不会销毁的函数空间

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值