接下来浅聊下闭包
一:首页要知道什么是闭包?
1、闭包说白了就是函数内部嵌套了另一个函数;
2、内部函数引用外部函数的变量参数;
3、返回的也是一个函数;
下面就是一个简单的闭包
// 外部函数
function fn(){
var num = 10;
// 内部函数
function foo(){
// 使用外部函数变量
num--
console.log(num);
}
// 返回函数
return foo
}
let fun = fn()
console.log(fun());
注意:测试如果没函数赋值的话(let fun = fn()) 就需要:
- f ( )( ) 执行子函数,返回孙函数--来调用函数查看效果
二:闭包的优缺点?如何解决?,优点就是使用闭包的原因
优点(为什么要使用闭包?):可以使内部变量不受全局污染,内部函数可以访问外部函数的变量,局部变量常驻内存当中
缺点:闭包会是函数中变量常驻内存中,导致消耗性能和内存溢出
解决方法:将执行完的变量赋值为 null,让垃圾回收机制进行回收释放;
三:注意点
开发中还是要减少闭包的使用,也就是面试喜欢问下闭包,像发起验证码的定时器就可以使用闭包来实现,关闭定时器在开启里面,那就是一个闭包