码迷,mamicode.com
首页 > 编程语言 > 详细

理解javascript闭包

时间:2015-10-27 19:24:36      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:

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

一个函数 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)使一个变量长期储存在内存中

理解javascript闭包

标签:

原文地址:http://www.cnblogs.com/fs521cw/p/4914822.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!