前端开发者经常在面试时会碰到这样一道题:什么是闭包?
首先我们来谈谈闭包的定义:函数A有内置函数B,当内置函数B调用函数A的变量时,就形成了闭包!
以下函数就是闭包的简单应用
function aa(){
let a=1;
return function(){
a++;
console.log(a);
}
}
let fn=aa();
fn(); //输出2
fn(); //输出3
可以看出闭包保存了函数A的变量的变化值!
由此可以看出闭包的缺点是容易造成内存泄露。