闭包就是函数能够记忆住当初定义时候的作用域,不管函数到哪里执行了,永远都能够
记住那个作用域,并且会遮蔽新作用域的变量。可预测状态容器;实现模块化,实现变量的
私有封装;可以实现迭代器。
闭包缺点:
1.
闭包有一个非常严重的问题,那就是内存浪费问题,这个内存浪费不仅仅
因为它常驻内存,更重要的是,对闭包的使用不当的话会造成无效内存的产生;
2.
性能问题
使用闭包时,会涉及到跨作用域访问,每次访问都会导致性能损失。
因此在脚本中,最好小心使用闭包,它同时会涉及到内存和速度问题。不过我们可以通
过把跨作用域变量存储在局部变量中,然后直接访问局部变量,来减轻对执行速度的影响。
function
o
(){
2
var
a
=
0
;
3
return
fun
(){
4
a
++
;
5
console
.
log
(
a
);
6
}
7
}