以下对闭包(closure)理解正确的有 ABCD

以下对闭包(closure)理解正确的有 ABCD

A
闭包是指有权访问另一个函数作用域中变量的函数;
B
函数内再嵌套函数,返回到外部形成闭包;
C
内部函数可以引用外层的参数和变量
D
参数和变量不会被垃圾回收机制回收

闭包的作用

​ 1 可以读取函数内部的变量

​ 2 可以把变量始终保存在内存中

​ 闭包的写法

​ 1 一个函数(即外部函数)里面包含另一个函数(即内部函数),并且return返回这个内部函数, 然后内部函数在定义内部函数之外的作用域被调
用,这时的内部函数就是一个闭包了。

​ 2 内部函数引用了外部函数的变量,这个变量不会被销毁,因为闭包需要这个变量, 所以通过闭包可以访问闭包保存的变量

function foo(){ var n = 1; function innerFoo(){ n += 1; console.log(n); } return innerFoo; } var func = foo(); func(); // 产生闭包innerFoo(),变量n保存在内存中 func();

​ 闭包的缺点 : 因为闭包的变量保存在内存中,内存泄漏,对内存的消耗很大,所以不要滥用闭包

​ 闭包常用的地方:

​ 1 es5 for循环事件监听

​ 2 函数里使用了定时器

​ 3 封装许多高级的功能集 减少闭包使用可以用立即执行函数传递变量


__EOF__

本文作者龙陌
本文链接https://www.cnblogs.com/longmo666/p/17825270.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   龙陌  阅读(33)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示