闭包指有权访问另一个函数作用域中变量的函数,简单说是,一个作用域可以访问另 一个函数内部的局部变量
var num=10;
function fun(){
consloe.log(num);
}
return fun;
}
var f=fn();
f();
优点:延长变量作用域,在函数外部可以访问函数内部的局部变量, 缺点:容易造成内存泄漏,因为比保重局部变量永远不会被回收 解决办法:收到清除 把变量变为null
- 闭包就是能够读取其他函数内部变量的函数,或者子函数在外调用,子函数所在的父函数的作用域不会被释放。 使用场景:
- 模拟私有方法
- setTimeout的循环
- 匿名自执行函数
- 结果要缓存场景
- 实现类和继承