zoukankan      html  css  js  c++  java
  • 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直接调用,局部变量创建后即销毁,值不保留

  • 相关阅读:
    简单SSO(Single signon)的另类实现方式,钩子技术
    URL
    [恢]hdu 1287
    [恢]hdu 1220
    [恢]hdu 1015
    [恢]hdu 2095
    [恢]hdu 1862
    HDOJ 300!
    [恢]hdu 1029
    [恢]hdu 1016
  • 原文地址:https://www.cnblogs.com/bclshuai/p/12880613.html
Copyright © 2011-2022 走看看