对于闭包的理解

什么是闭包:
闭包就是能够读取其他函数内部变量的函数。在javascript中,只有函数内部的子函数才能读取局部变量,所以闭包可以理解成 “定义在一个函数内部的函”。

在js中 闭包的优点与缺点:
优点:
1.保护函数内的变量安全
    2.在内存中维持一个变量(用的太多就变成了缺点,占内存) ;
    3. 逻辑连续,当闭包作为另一个函数调用的参数时,避免你脱离当前逻辑而单独编写额外逻辑。
    4. 方便调用上下文的局部变量。
    5. 加强封装性,可以达到对变量的保护作用。

缺点:
1.常驻内存,会增大内存使用量,使用不当很容易造成内存泄露。
    2.还有有一个非常严重的问题,那就是内存浪费问题,这个内存浪费不仅仅因为它常驻内存,更重要的是,对闭包的使用不当会造成无效内存的产生。
特点:
1. 函数嵌套函数
    2. 内部函数可以访问外部函数的变量
    3. 参数和变量不会被回收。

function a () {
var i = 0;
function b () {
alert (i++);
}
return b;
}
var c = a();
c();

这段代码有两个特点:
 1、函数b嵌套在函数a内部;
 2、函数a返回函数b。

闭包的作用:
 闭包可以用在许多地方。它的最大用处有两个,一个是前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中,不会在demo1调用后被自动清除。

总结:
 闭包可以用在许多地方。它的最大用处有两个,一个是前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中,不会在demo1调用后被自动清除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值