麦壳社区

闭包

2016-11-21  本文已影响24人  张Boy

闭包:简单来说就是函数内返回函数
效果:可以让变量使用保存在内存中不被释放,再者就是可以引用内部变量

function person(){
      var name  = 'bob';
      function getName(){
             return name;
      }
      return getName;
}
console.log(person()()); //输出bob;
//这就是一个闭包,创建私有变量的一个好方法;但是,通过它看不出闭包的特性,我们用下面的案例来看
//
var addN=null;
function addSelf(){
    var n = 0;
    addN = function(){
        n++;
    }
    function retN(){
         return n;
    }
    return retN();
}
console.log(addSelf()()); //0
addN();
console.log(addSelf()()); //1
//变量n一直放在内存中,即使addSelf函数调用完成也没有被释放,第二次执行又在自身基础上自加。

闭包在开发过程中单独使用的情况很少,但他是JS封装的基础(包括模块封装和面向对象等),后面我们会用到。

上一篇 下一篇

猜你喜欢

热点阅读