• JavaScript闭包总结


    自己开发了一个股票智能分析软件,功能很强大,需要的点击下面的链接获取:

    https://www.cnblogs.com/bclshuai/p/11380657.html

    JavaScript闭包

    (1)   定义

    闭包是指将内部局部变量封装在函数内部,同时又能通过外部函数调用改变内部变量的值,并且保证局部变量不销毁,能够在内存中长期存在,进行累加等操作。避免使用全局变量造成哪里都可以修改的缺点,同时引入内存泄露的缺陷。

    (2)   实现

    定义外部函数,函数内部定义一个变量和内部函数,内部函数中修改变量的值,内部函数的结果作为外部函数的返回值。

    function outerFn(){//外部函数名称

    var i = 0;//内部局部变量

      function innnerFn(){//内部函数

          i++;//变量修改累加

          console.log(i);

      }

      return innnerFn;//内部函数作为返回

    }

    var inner1 = outerFn();//定义全局变量保存外部函数,创建函数对象,函数对象生命周期和全局变量inner1相同,函数对象内部的局部变量与全局变量inner1的生命周期也相同。知道inner1销毁,内部的局部变量才会销毁。

    var inner2 = outerFn();//重新创建函数对象,与inner1内存空间不同。

    inner1();//1

    inner2();//1 inner1和inner2内存独立,互不干扰

    inner1();//2

    inner2(); //2 

    outerFn()();//1直接调用,局部变量创建后即销毁,值不保留

    outerFn()();//1直接调用,局部变量创建后即销毁,值不保留

  • 相关阅读:
    性能测试流程
    性能测试关注的指标
    什么样的系统需要做性能测试
    python数据类型-列表
    python-数据类型-元组
    python自动化第二课
    python自动化第二课
    内存泄漏和内存溢出
    程序中必须知道的几种命名规范
    超级详细安装jmeter的教程(亲测)
  • 原文地址:https://www.cnblogs.com/bclshuai/p/12880613.html
Copyright © 2020-2023  润新知