闭包

闭包函数 让子函数返回父函数的局部变量

一个作用域有权访问另外一个作用域的局部变量

作用:延伸变量的使用范围,能够访问函数作用域中的变量(局部变量);

创建外部可访问的隔离作用域,避免全局变量污染

缺点:被引用的私有变量不能被销毁,增大了内存消耗,造成内存泄漏;

解决方法:可以在使用完变量后手动为它赋值为null

function Father(){
let num=123;
//将子函数(匿名函数)作为父函数的返回值
return function(){
let n=0;
//console.log(num);//123
return num;//让匿名函数)返回父函数的局部变量
}
}
let re=Father();//re即为闭包函数
console.log(re);//re保存的是父函数的返回值(匿名函数)
//调用匿名函数,访问函数作用域中的变量(局部变量) 局部变量num无法被销毁
console.log(re());//123
//匿名函数作为父函数的返回值被赋值给了re,re保存的是父函数的返回值(匿名函数)
//匿名函数内部引用着父函数的变量num,所以变量num无法被销毁,产生了内存消耗
//变量n是每次被调用时新创建的,所以每次匿名函数执行完后它就把属于自己的变量连同自己一起销毁(垃圾回收机制)
#笔记#
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-10 14:00
林子大了什么鸟都有啊,我觉得我说的已经很客气了,阴阳谁呢
牛客62656195...:应该不是阴阳吧?你第一次注册的时候boss就说你是牛人
点赞 评论 收藏
分享
06-26 15:33
青岛工学院 Java
积极的秋田犬要冲国企:他现在邀请我明天面试
点赞 评论 收藏
分享
07-09 19:25
门头沟学院 Java
这是要把每一个投校招的都开盒吗?
26届之耻将大局逆转:裁人的时候一次性追回餐费
点赞 评论 收藏
分享
评论
3
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务