一、什么是闭包?
闭包就是让内部函数访问外部函数作用域,例如
let a = 1
let b = function(){
console.log(a)
}
二、闭包的作用
1.从外部读取函数内部的变量,例如
function f1(){
let a = 123;
function f2(){
console.log(a);
}
return f2;
}
let b = f1();
b();
2.让这些变量的值始终保持在内存中,不会在function调用后被自动清除
function f1(){
let n=10;
function f2(){
console.log(n++);
}
return f2;
}
let b=f1();
b();
三、闭包的优缺点
优点:避免全局变量的污染 缺点:因为一段内存空间内的函数空间不会被销毁,常驻内存会增大内存使用量