浅谈闭包

1、在函数内部 如果没有用var声明的变量是全局变量

2、什么是闭包

能够访问其他函数内部的变量或者方法

特点:

1、函数嵌套函数

2、必须有return

3闭包的作用

1、能够访问局部变量或者方法

2、在for循环中可以保留i的值

4、闭包的危害
会占用内存空间 会在IE浏览器下造成内存泄漏

当不用局部的变量或者方法的时候需要进行销毁

5、什么是垃圾回收机制

当一个函数内部的一些方法或者属性没有在全局进行调用的时候,当前函数运行完毕以后就会被回收,下次在调用当前函数的时候函数内部的方法和属性都会被重置,如果一个函数的一些方法和属性在全局进行调用了,那么当前函数不会被销毁,下次在调用当前函数的时候里面的方法和属性不会进行重置

example1:

function fn(){
    var a=10;
    return function(){
        a++;
      console.log(a);
     }
}

var a=fn();

a(); //11
a(); //12

example2:

example3:

原文地址:https://www.cnblogs.com/jsjx-xtfh/p/9580425.html