理解javascript闭包

不说学术上怎么理解闭包的概念了,我所理解的闭包就是:

一个函数 a中包含另一个函数b,c调用函数a时,实际上就是调用了函数b,这就是闭包(嵌套在函数里面的内部函数,内部函数可以访问外部函数中声明的局部变量、参数和其他内部函数,内部函数被外部函数调用)。

看一个例子吧:

function a(){ //a中包含另一个函数b

  var i=0;

  function b(){

    alert(++i)

  };

  return b

};

var c=a();  //c调用函数a时,实际上就是调用了函数b

alert(c); //返回的是function b(){alert(++i)}

闭包其实就是保护内部变量,

但是如果页面上不需要这些变量,就会造成垃圾,

会使内存增大。

c=null  这样i就会被回收了。

闭包有啥好处呢?

1)可以存在自己的私有变量;

2)避免全局变量对其影响;

3)使一个变量长期储存在内存中

posted @ 2015-10-27 17:05  amber_fs  阅读(165)  评论(0编辑  收藏  举报