您的位置:首页 > Web前端 > JavaScript

Javascript初学者关于对闭包的理解

2015-11-13 21:17 253 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/xianfeng_talk/article/details/49823135 function outer(){
var n=0;
return function inner(){return ++n;}
}
var getNum=outer();
console.log(getNum()); //输出1
n=0;//创建了全局变量n

console.log(getNum()); //输出2

闭包的三大定义:

1、函数的嵌套;

2、里层函数调用外层函数的局部变量;

3、 内层函数被返回到外部,在外部调用。

何时使用闭包:即要重用变量,又要保护变量不被污染
 缺点:占用更多内存空间——因为外层函数的活动对象无法释放。

拿上面的例子来举例:里层函数inner调用了外层函数的局部变量n,并且inner被返回到外部

我的理解是,外层函数的作用就是创建一个不容易被串用的局部变量,从而达到保护变量的作用,而对于要实行的方法逻辑则主要有里层函数实行。由于闭包的特性使得闭包调用结束后,外层函数作用域链的活动对象得不到释放,所以闭包又存在着占用内存空间的缺点


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: