闭包
一、什么是闭包
- 闭包就是函数套函数,在外层函数执行的时候返回内部函数,并且内部函数有权调用外部函数作用域的局部变量
二、为什么用闭包
- 是用闭包会产生私有变量,能够解决变量污染
- 但是会产生内存泄漏的问题
三、什么是变量污染
- 当和引用的 js 文件中变量名相同时,就会造成变量污染
四、垃圾回收机制
- 函数中的局部变量当函数完成之后,局部变量会被销毁
- 将不需要使用的数据进行清除,如果不清楚就会造成内存泄露
五、闭包实例
// 此时就形成了闭包,在fn执行的时候,将fn1返回赋值给f,f执行的时候,会访问到fn的局部变量a
function fn() {
var a = 1;
function fn1() {
a++;
console.log(a);
}
return fn1;
}
var f = fn();
f(); // 2
f(); // 3