闭包即封装整个函数,让函数里面的私有变量不会对外暴露,并且能够记忆这个私有变量,能在这个变量作用域以外的地方继续使用
这是一个简单示例
function createCounter(){
let count=0;
return function (){
count++;
console.log(count)
}
}
const counter=createCounter();
counter();//1
counter();//2
counter();//3createCounter()在执行时,创建了一个局部变量count,然后返回了一个匿名函数。- 由于这个返回的匿名函数可以“访问并修改”
count(它在createCounter()的作用域里被定义),这就形成了闭包。 - 这样,每次调用
counter()时,都会在原有的count基础上进行自增,而不是从头开始。