JS闭包

  1.什么是闭包:闭包是一种保护私有变量的机制,在函数执行时形成私有的作用域,保护里面的私有变量不受外界干扰,使得私有变量不被JavaScript垃圾回收机制强制回收,直观的讲是函数里面套函数!

   2.闭包的优点:一个函数可以访问另外一个函数的变量,可以保护私有变量不被全局变量污染,在一个不熟悉的网页中嵌入功能使用闭包是很好的选择。

   3.闭包的缺点:过多使用闭包会造成内存占用过多的问题,滥用闭包会造成内存泄漏即内存不被释放,我们知道函数一执行完里面的变量就会立即销毁。

   4.代码:

function add(){
    var num = 0;
    return function(){
     num++; console.log(num
); } } var addFun = add(); addFun();//1 addFun();//2 addFun();//3