JS闭包

闭包的概念:

  • 闭包的概念:函数A中,有一个函数B,函数B中可以访问函数A中定义的变量或者是数据,此时形成了闭包(这句话暂时不严谨
  • 闭包的模式:函数模式的闭包,对象模式的闭包
  • 闭包的作用:缓存数据,延长作用域链
  • 闭包的优点和缺点:缓存数据

函数模式的闭包:在一个函数中有一个函数

   function f1() {
     var num=10;
     //函数的声明
     function f2() {
       console.log(num);
     }
     //函数调用
     f2();
   }
   f1();

对象模式的闭包:函数中有一个对象


   function f3() {
     var num=10;
     var obj={
       age:num
     };
     console.log(obj.age);//10
   }
   f3();

小栗子:

闭包的方式产生三个随机数,但是相同——也就下面这一段代码通过闭包的形式让最上面的一段代码执行一次,而里面的这个function重复执行

function f1() {
        var num=parseInt(Math.random()*10+1);//----执行了一次
        return function() {//----- 这一段函数执行了三次
            console.log(num)//-----这一段函数执行了三次
        }
    };
    var ff=f1();//定义变量接收
    ff();//10
    ff();//10
    ff();//10

总结:

  1. 总结:如果想要缓存数据,就把这个数据放在外层的函数和里层的函数的中间位置
  2. 闭包的作用:缓存数据.优点也是缺陷,没有及时的释放
  3. 局部变量是在函数中,函数使用结束后,局部变量就会被自动的释放
  4. 闭包后,里面的局部变量的使用作用域链就会被延长
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值