• 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);

  • 相关阅读:
    期末考试冬眠
    题解 P1457 【城堡 The Castle】
    题解 P1052 【过河】
    题解 P5663 【加工零件【民间数据】】
    与 macOS 10.12 兼容的OpenCV版本
    summarise() regrouping output 警告
    binary_crossentropy和BinaryCrossentropy的区别
    损失函数BinaryCrossentropy例子说明
    理解功能强大的sed替换命令
    理解GAN对抗神经网络的损失函数和训练过程
  • 原文地址:https://www.cnblogs.com/Jasonellen/p/5777738.html
Copyright © 2020-2023  润新知