什么是闭包
什么是闭包:就是在一个函数中定义并返回了另外一个函数,在这个内部定义的函数中可以访问外面的函数定义的变量,但是外面函数不能访问内部函数定义的变量。
//1. 用外层函数包裹要保护的变量和内层函数function outer(){var i=1;//2. 外层函数返回内层函数对象到外部return function(){console.log(i++);}}//3. 调用外层函数获得内层函数对象var getNum=outer();//getNum:function(){ console.log(i++); }getNum();//1getNum();//2i=1;getNum();//3getNum();//4
闭包优点:
1.数据封装和私有化
2.避免全局变量污染
闭包缺点:
1.内存泄漏的风险