闭包那点事

 什么是闭包?闭包就是一个暂存空间, 用于函数外部去读函数内部定义的变量的方法("定义在一个函数内部的函数")

function f1(){

    var n=999;

              function f2(){

                    alert(n);

                }

    return f2;

  }

  var result=f1();

  result(); // 999

闭包作用

一、可以读取函数内部的变量

二、让这些变量的值始终保持在内存中


关于闭包的谣言

闭包会造成内存泄露?错。

说这话的人根本不知道什么是内存泄露。内存泄露是指你用不到(访问不到)的变量,依然占居着内存空间,不能被再次利用起来。

闭包里面的变量明明就是我们需要的变量(lives),凭什么说是内存泄露?

这个谣言是如何来的?

因为 IE。IE 有 bug,IE 在我们使用完闭包之后,依然回收不了闭包里面引用的变量。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • >js变量的作用域 全局作用域(全局变量) : 在函数外面声明的变量 生命周期(变量从声明到销毁)...
    Fanny阅读 56评论 0 0
  • 一、闭包有什么用 1、能够在函数外部引用函数内部的变量(变量作用域); 2、让变量的值始终保持在内存中(垃圾回收机...
    你这个人真的是阅读 378评论 0 1
  • 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。 一、变量...
    zock阅读 1,089评论 2 6
  • 一、变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域。 变量的作用域无非就是两种:全局变...
    君满楼001阅读 361评论 0 0
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,625评论 28 53