闭包:一个嵌套函数,子函数使用了父函数的变量,通过return将子函数暴露在全局作用域,子函数就形成闭包、 通过闭包,父函数的局部变量没有被销毁,可通过闭包去调用 ,但同时,这个局部变量也不会被全局变量污染
闭包函数的原理
内层函数在外层函数之外被调用 就会形成闭包
闭包的作用:
实现共有变量
优点: 避免全局变量的污染,同时,局部变量没有被销毁,驻留在内存中,还可以被访问 缺点: 使用不当,会造成内存泄露
代码
var add1 = (function() {
let count = 0;
return function() {
console.log("count", count);
return count += 1;
}
})();
console.log(add1());
console.log(add1());
console.log(add1());