1、阐述闭包:闭包是js的一种语法特性;
var x='test';function(){console.log(x)};「函数」和「函数内部能访问到的变量」的总和,就是一个闭包。
2、闭包的作用:间接访问一个变量;以下就实现了一个闭包,它通过返回一个函数使得外部能获得内部的变量。
const increase=function(){ var count=0; return function add(){ count =+1; } }(); //increase() => add() => count +=1;
3、闭包解决了什么问题:
①避免污染全局变量 ② 提供对局部变量的间接访问 ③维持变量,使其不被垃圾回收机制回收;
4、闭包的缺点:使用不当会造成内存泄漏;