zoukankan      html  css  js  c++  java
  • 闭包

    什么是闭包?

      1、密闭的容器,类似于set,map容器,存储数据的

      2、闭包是一个对象,存放数据的格式,key:value

    形成的条件:

      1、函数嵌套

      2、内部函数引用外部函数的局部变量

    闭包的优点:

      延长外部函数局部变量的生命周期

    闭包的缺点:

      容易造成内存泄漏,老是不销毁

    注意点:

      1、合理使用闭包

      2、用完闭包要及时清除(销毁)

    案例一:请结合断点调试

     1 function fun(){
     2     var count = 1;
     3     return function(){
     4         count++;
     5         console.log(count);
     6     }
     7 }
     8 var fun2 = fun();
     9 fun2(); //2
    10 fun2(); //3

    案例二:请结合断点调试

     1 function fun(n,o){
     2     console.log(o);
     3     return {
     4         fun:function(m){
     5             return fun(m,n)
     6         }
     7     }
     8 }
     9 var a = fun(0); //闭包发生在a上,闭包对象存储在a上,a上的n是没变的
    10 a.fun(1); //0
    11 a.fun(2); //0
    12 a.fun(3); //0
    13 
    14 var b = fun(0).fun(1).fun(2).fun(3).fun(4); //undefined,0,1,2,3,4,;闭包发生在每一个新的对象上
    15 
    16 var c = fun(0).fun(1);  //闭包发生在c上,
    17 c.fun(2); //1
    18 c.fun(3); //1
    奔跑的蜗牛
  • 相关阅读:
    UED
    内容分发网络CDN(互联网技术)
    分布式系统基础架构
    十六进制后按高低位分开(转)
    Kafka.net使用编程入门(二)
    Storm集成Kafka应用的开发
    .net 框架
    .NET 的 WebSocket 开发包比较(转)
    ASP.NET Web API上实现 Web Socket
    Scrapyd部署爬虫
  • 原文地址:https://www.cnblogs.com/xiaoyue-/p/10656065.html
Copyright © 2011-2022 走看看