简单理解js闭包

周末闲暇,分享一下自己理解的js闭包原理,虽然平时用的少,但是也必须掌握的。

    我们做前端的应该都了解 Javascript 中的GC机制(垃圾回收机制),如果一个对象不再被引用,那么这个对象就会被 GC 回收,否则这个对象一直会保存在内存中。

我们看下下面这个简单的demo,非常简单,但是能基本说明闭包的原理:

function outer(){

  var count = 0;

  function inner(){

    count ++;
     console.log(count);

  }

  return inner;

}

var fn= outer();

fn();//输出:1

fn();//输出:2

fn();//输出:3

大家看到上面的输出结果应该对闭包有所了解了吧!

最后:我自己对js闭包使用的结论!

          1.当我们需要在模块中定义一些变量,并希望这些变量一直保存在内存中但又不会“污染”全局的变量时,就可以用闭包来定义这个模块。

   2.不必要的闭包只会徒增内存消耗!

 

 

 

posted @ 2018-02-02 15:13  王志强zzz  阅读(340)  评论(0编辑  收藏  举报