闭包

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

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

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

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

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

解决方法:可以在使用完变量后手动为它赋值为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是每次被调用时新创建的,所以每次匿名函数执行完后它就把属于自己的变量连同自己一起销毁(垃圾回收机制)
#笔记#
全部评论

相关推荐

12-20 11:21
复旦大学 Java
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-21 11:29
已编辑
斯卡蒂味的鱼汤:知道你不会来数马,就不捞你😂最近数马疯狂扩招,招聘要求挺低的,你能力肯定够,应该就是因为太强了,知道你不会来才不捞你
投递腾讯云智研发等公司7个岗位
点赞 评论 收藏
分享
链接
海梨花:我说话难听,你这简历跟没写没啥区别,搜搜别人的简历,用心写,不要随随便便就结束了
点赞 评论 收藏
分享
评论
3
2
分享

创作者周榜

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