什么是闭包?手写一个闭包函数?闭包有哪些优缺点

86 阅读1分钟

闭包指有权访问另一个函数作用域中变量的函数,简单说是,一个作用域可以访问另 一个函数内部的局部变量

var num=10;
function fun(){
consloe.log(num);

}
return fun;
}
var f=fn();
f();

优点:延长变量作用域,在函数外部可以访问函数内部的局部变量, 缺点:容易造成内存泄漏,因为比保重局部变量永远不会被回收 解决办法:收到清除 把变量变为null

  • 闭包就是能够读取其他函数内部变量的函数,或者子函数在外调用,子函数所在的父函数的作用域不会被释放。 使用场景:
  • 模拟私有方法
  • setTimeout的循环
  • 匿名自执行函数
  • 结果要缓存场景
  • 实现类和继承