• JS笔记


    闭包相关: 闭包——就是函数内部的子函数,每一个子函数都是一个闭包

           闭包一个重点是 立即执行和除了传的参数不让其他参数改变影响内部变量      

         闭包函数运行一次后内部定义的局部变量会被保存在内存中,运行后不销毁,再次运行闭包就接着用内存中的变量

    function a(){

    var n=1;

    b =function(){     //匿名函数b

      alert(n++);

    }

    c =function(){

      alert(n++);

    }

      return b;

    }

     

    var x = a();  先运行一次外层,所有的内层闭包就都申明了(因为都是全局变量),所以在外部就都可以访问了

    c();

     

     

    function foo(x) {

        var tmp = 3;

        a=function (y) {   //匿名函数

            alert(x + y + (++tmp));

        }

        return a;

    }

    var bar = foo(2); 

    a(10); //16     然后将内部的tmp改为了4

    a(10); //17     继续运行闭包函数,此时++tmp为 ++4是5

     

     

    function foo1(x) {   //这里的外层函数不能和上面的同名,不然返回值是 有名函数,覆盖上面的匿名函 数,在a();调用就出错了

        var tmp = 3;

        return function b(y) {

            alert(x + y + (++tmp));

        }

    }

    var bar = foo1(2); 

    // b(10); 错   返回值函数名和函数不一样,返回函数就不能通过函数名调用

    bar(10);  // 16

    bar(10);  //17

     

     //函数的表现形式

    (function(i){  //函数1  等于下面的函数2

      alert(i);

      })(i);

    function a(i){ //函数2

      alert(i);

      };

    a(i);

  • 相关阅读:
    Servlet18—— 路径编写总结
    Servlet17—— Cookie
    Servlet16—— 资源跳转
    Servlet15—— 线程安全问题
    Servlet14—— 程序中乱码解决方案
    Servlet13—— ServletRequest
    Servlet12—— GenericServlet
    CF1467B Hills And Valleys
    CF1470B Strange Definition
    【BZOJ1082】【SCOI2005】栅栏
  • 原文地址:https://www.cnblogs.com/Jasonellen/p/5777738.html
Copyright © 2020-2023  润新知