一、闭包

1.        如何从外部读取局部变量(闭包):

在一个函数内部,再定义一个函数:

第一步:定义一个普通函数f1();

第二步:在f1中定义一个普通函数f2();

第三步:在f1中返回f2(在f1中返回f2的引用)

第四步:执行f1,把f1的返回结果复制给变量c;

第五步:执行c();

函数A的内部函数B被函数A以外的一个变量C引用

           Function f1(){

                Var n=99;

           Function f2(){

               Alert(n);

           }

           Return f2;

           }

           Var result =f1();

           Result();//99外部可以访问局部变量

2.        闭包:当一个内部函数被其他函数之外的变量引用的时候,就形成了闭包。

3.        闭包的特性:

1)        函数嵌套函数

2)        函数内部可以引用外部的参数和变量

3)        参数和变量不会被垃圾回收机制回收

4.        闭包的用途:

1)        可以直接读取函数内部定义的变量

2)        让这些变量的值始终存在内存中

5.        注意:

1)        问题1:闭包会使函数中的变量都被保存在内存中,内存消耗大,所以不能滥用,否则会导致网页的性能问题,内存泄漏

解决方案:在退出函数的时候,将不使用的局部变量全部删除

2)        问题2:闭包会在复函数外部,改变复函数内部的变量值,如果把复函数当做对象使用,把闭包当做公用方法(public),内部变量相当于私有属性(privatevalue)

---------不能随便改变复函数内部变量的值。

JavaScript 闭包相关推荐

  1. Javascript闭包和闭包的几种写法及用途

    好久没有写博客了,过了一个十一长假都变懒了,今天总算是恢复状态了.好了,进入正题,今天来说一说javascript里面的闭包吧!本篇博客主要讲一些实用的东西,主要将闭包的写法.用法和用途.  一.什么 ...

  2. JavaScript学习总结(十六)——Javascript闭包(Closure)

    闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现.很早就接触过闭包这个概念了,但是一直糊里糊涂的,没有能够弄明白JavaScript的闭包到底是什 ...

  3. 全面理解Javascript闭包和闭包的几种写法及用途【转】

    一.什么是闭包和闭包的几种写法和用法 1.什么是闭包 闭包,官方对闭包的解释是:一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分.闭包的特点: 1. ...

  4. 全面理解Javascript闭包和闭包的几种写法及用途

     一.什么是闭包和闭包的几种写法和用法 1.什么是闭包 闭包,官方对闭包的解释是:一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分.闭包的特点: 1. ...

  5. JavaScript闭包如何工作?

    您将如何向了解其闭包概念(例如函数,变量等)的人解释JavaScript闭包,但却不了解闭包本身? 我已经在Wikipedia上看到了Scheme示例 ,但是不幸的是它没有帮助. #1楼 我知道已经有 ...

  6. 让你分分钟理解 JavaScript 闭包

    原文:https://www.cnblogs.com/onepixel/p/5062456.html 让你分分钟理解 JavaScript 闭包 闭包,是 Javascript 比较重要的一个概念,对 ...

  7. 全面理解Javascript闭包和闭包的几种写法及用途--转载自https://www.cnblogs.com/yunfeifei/p/4019504.html...

    全面理解Javascript闭包和闭包的几种写法及用途 好久没有写博客了,过了一个十一长假都变懒了,今天总算是恢复状态了.好了,进入正题,今天来说一说javascript里面的闭包吧!本篇博客主要讲一 ...

  8. [转载]深入理解JavaScript闭包(closure)

    最近在网上查阅了不少Javascript闭包(closure)相关的资料,写的大多是非常的学术和专业.对于初学者来说别说理解闭包了,就连文字叙述都很难看懂.撰写此文的目的就是用最通俗的文字揭开Java ...

  9. [转]Javascript 闭包

    [转]Javascript 闭包 简介 Closure 所谓"闭包",指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分. 闭 ...

  10. JavaScript 闭包的详细分享(三种创建方式)(附小实例)

    JavaScript闭包的详细理解 一.原理:闭包函数--指有权访问私有函数里面的变量和对象还有方法等:通俗的讲就是突破私有函数的作用域,让函数外面能够使用函数里面的变量及方法. 1.第一种创建方式 ...

最新文章

  1. Acwing--单调栈
  2. numpy使用np.set_printoptions函数抑制numpy数组输出结果使用科学计数法进行显示(suppressing scientific notation in numpy array)
  3. 设置cisco登录时显示的警示性信息-banner
  4. 设计模式之三 装饰模式
  5. 是否可能有一台算力无穷大的计算机?
  6. container_of 和 offsetof 宏详解
  7. Linux /usr/bin与/usr/local/bin区别
  8. php停车场计时收费软件,城市街道停车计时收费系统 路边停车收费软件
  9. UML建模—EA创建Class(类图)
  10. 软件工程综合实践专题——个人博客作业1
  11. java通过HTTPS协议POST提交接收JSON格式数据
  12. Redis中的键值过期操作
  13. python语言中包含的标准数据类型_Python标准数据类型
  14. Python学习之路3 - 字符串操作字典
  15. 【第二周】结对编程体会
  16. java replace三个参数_javascript replace()第二个参数为函数时的参数用法
  17. 国内五大主流网站内容抓取工具/采集软件大盘点
  18. IOUtils快速进行内容复制与常用方法
  19. 「捷径」解读:iOS 自动化的 3.0 时代
  20. 第二人生的源码分析(十四)人物角色的实现

热门文章

  1. 股市预测,销量预测,病毒传播...一个时间序列建模套路搞定全部!⛵
  2. 多线程 爬取 趣图网
  3. 墨者学院-SQL注入漏洞测试(布尔盲注)
  4. openstack学习之路(运维部份)
  5. java缺省包详解_Java在其它包中无法引用缺省包中的类
  6. 洛谷 P1195 口袋的天空 (题解+代码)
  7. 一句话木马:初识木马练习
  8. makefile传字符串给c语言,makefile终极奥义
  9. DevCloud -开发平台
  10. 寻找合适的研发效能度量指标(中)