• javascript-匿名函数、闭包基础整理(1).


    匿名函数

     1 //把匿名函数赋值给变量
     2     var box=function()
     3     {
     4         return 'Lee';
     5     }
     6 
     7 // 匿名函数自我执行来执行匿名函数
     8     (function()
     9     {
    10         alert('Lee');
    11     })();
    12 //    把匿名函数的 返回值 赋值给变量
    13     var box =(function()
    14     {
    15         return 'Lee';
    16     })();
    17     
    18         alert(box);
    19 //自我执行匿名函数的传参
    20 
    21     (function (age)
    22     {
    23         alert(age);
    24     })(100);

    闭包是可访问一个函数作用域里变量的函数

     1 //函数里面放一个匿名函数
     2         function box()
     3         {
     4             return function()
     5             {
     6                 return 'Lee';
     7             }
     8         }
     9 
    10         //alert(box()());
    11         
    12         var b=box();
    13         alert(b());

    闭包是指由权访问另一个函数作用域中的变量的函数,创建闭包的常见的方式,就是在一个函数内部创建另一个函数,通过另一个函数访问这个函数的局部变量

     1 //通过 闭包 返回局部变量
     2         function box()
     3         {
     4             var age = 100;
     5             return function()
     6             {
     7                 return age;
     8             }
     9         }
    10         
    11         alert(box()());

    //闭包可以把局部变量驻留在内存中,可以避免使用全局变量。(全局变量污染到时应用程序不可预测性,每个模块都可以调用必将引来灾难,所以推荐使用私有的,封装的局部变量)

     1 //使用匿名函数实现局部变量驻留在内存中从而实现累加
     2         function box()
     3         {
     4             var age = 100;
     5             return function()
     6             {
     7                 age++;
     8                 return age;
     9             }
    10         }
    11 
    12         //alert(b()());  不能使用这样累加 因为每次都会 初始化 var age =100;
    13         
    14         var b= box();
    15         alert(b());
    16         alert(b());
    17         alert(b());
    18         alert(b());
    19         alert(b());
    20         
    21         b=null; //★★这里非常重要 解除引用 垃圾回收
  • 相关阅读:
    sql 修改表名、列名、列类型
    .Net WinForm下配置Log4Net(总结不输出原因)
    ubuntu20.04 搭建门罗币节点
    python2 和 python3里StringIO和BytesIO的区别
    java.lang.IllegalArgumentException: java.lang.ClassCastException
    iphoneX安全边界
    ios中禁用回弹效果
    将nodejs回调方法变为promise
    实现trim方法
    flex实现三个div上中下布局
  • 原文地址:https://www.cnblogs.com/VanqusherCsn/p/4316194.html
Copyright © 2020-2023  润新知