深入探究什么是闭包?

代码举例:
f1();
function f1 () {
var a = '闭包';
f2();
function f2() {
console.log(a)
}
}

什么是闭包?
  从上面的代码中可以看出,闭包就是在一个函数中定义一个变量,这个变量在函数外部是不能访问的,但是这个函数的内部定义的子函数是可以正常访问的,那么f2这个函数就属于闭包。

使用闭包需要注意什么?

  1.由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。解决方法是,在退出函数之前,将不使用的局部变量全部删除。

  2.闭包会在父函数外部,改变父函数内部变量的值。所以,如果你把父函数当作对象(object)使用,把闭包当作它的公用方法(Public Method),把内部变量当作它的私有属性(private value),这时一定要小心,不要随便改变父函数内部变量的值。

原文地址:https://www.cnblogs.com/qiuchuanji/p/8805341.html