先上段代码:
//函数a
function a()
{
var i=0;
//函数b
function b()
{
alert(++i);
}
return b;
}
//函数c
var c = a();
c();
代码特点:
1、函数b嵌套在函数a内部;
2、函数a返回函数b。
代码中函数a的内部函数b,被函数a外面的一个变量c引用的时候,这就叫创建了一个闭包。有时候函数b也可以用一个匿名函数代替来返回,即return function(){};
优点:1.保护函数内的变量安全,加强了封装性 2.在内存中维持一个变量(用的太多就变成了缺点,占内存)
闭包之所以会占用资源是当函数a执行结束后, 变量i不会因为函数a的结束而销毁, 因为b的执行需要依赖a中的变量。
不适合场景:返回闭包的函数是个非常大的函数
闭包的典型框架应该就是jquery了。
闭包是javascript语言的一大特点,主要应用闭包场合主要是为了:设计私有的方法和变量。
这在做框架的时候体现更明显,有些方法和属性只是运算逻辑过程中的使用的,不想让外部修改这些属性,因此就可以设计一个闭包来只提供方法获取。
闭包的缺点就是常驻内存,会增大内存使用量,使用不当很容易造成内存泄露。
总结一下:
优点:
1. 逻辑连续,当闭包作为另一个函数调用的参数时,避免你脱离当前逻辑而单独编写额外逻辑。
2. 方便调用上下文的局部变量。
3. 加强封装性,第2点的延伸,可以达到对变量的保护作用。
缺点:
闭包有一个非常严重的问题,那就是内存浪费问题,这个内存浪费不仅仅因为它常驻内存,更重要的是,对闭包的使用不当会造成无效内存的产生,看下面的例子:
var array = [];
function abc() {
var foo = function(){
}
array.push(foo);
return foo;
}
for(var i = 0 ; i < 10000; i ++)
{
abc();
}
alert(array[0] == array[1]);
通过上面的测试我们会看到这一万次abc()执行所产生的同一个逻辑的闭包的地址并不相同,也就是说它生产了一堆的一模一样的Function对象,这样有好处就是可以以工厂模式产生函数以备使用,然而如果你的稍有不慎将闭包当做常态逻辑使用,就不可避免的会造成内存垃圾。当中换个语法可能更好理解:
var foo = new Function();
所以关于闭包,就我自己的习惯而言,能不用就不用,如果非用不可,那就想办法保持闭包对象的数量很少甚至唯一。
以上所述就是本文的全部内容了,希望大家能够喜欢。
相关推荐:
怎么使用AI生成文章,轻松提升写作效率!
AI撰写工具的无限可能,让内容创作更高效、更精彩!
怎么查一篇文章是不是AI写的?你需要这几个关键方法!
【SEO优化全攻略】提升网站流量的终极秘籍,带你轻松玩转搜索引擎优化!,金融网站推广维护
AI提供的阅读书目对学生的专业知识有多大帮助,沃奇ai
WPS改写-轻松提升文档创作效率的秘密武器,推广网站的优势
AI工具,让工作效率翻倍:AI工具教程全面解析
ChatGPT出问题?背后的原因与解决方案,夸克ai写作生成
SEO技术如何通过优化提升网站流量与排名,四平网站优化公司
优化投入,让企业更具竞争力,怎样推广营销方案
SEO努力:提升网站排名的关键策略,网站建设微企动力
“关键词指白”:揭秘如何通过精准关键词优化实现流量暴增,全面分析网站seo
ChatGPT在处理文本时可能无法完全理解上下文的复杂性,肌肉ai
SEO大神如何在激烈的互联网竞争中脱颖而出?,网页设计和网站建设试题
ChatGPT画布打不开?如何解决这一常见问题?,Ai怎么储存为Ai格式在桌面
ChatGPT维护-智能时代的数字助手,如何让你的工作更高效,ai智能救援
SEO添加:提升网站流量与排名的必备策略,seo团队成员中国人
什么是seo反连接,网站反链多好还是少好 ,网易ai产品
seo需要什么人才,seo需要做什么工作 ,探索ai照片
AI免费工具:提升效率与创意的秘密武器
SEO需要什么语音,seo需要考虑什么 ,学生作业ai
目前AI软件有哪些?智能新时代的必备工具
怎么用AI写出高质量科普文章?揭秘新时代创作利器!
ChatGPT暂时不可用?如何高效应对并寻找最佳替代方案!,logo ai教程视频
互联网快排:助力企业网站流量爆发的秘密武器,西安网站建设找资源公司
ChatGPT出现错误503?你需要知道的解决方案和应对策略,ai拉伸字效
交友群都有哪些,交友群是干什么的 ,ai猫csgo
seo管理系统是什么,seo网站管理 ,过度圆ai
SEO运营工作是什么,seo公司运营 ,720516AI
SEO收集:如何通过有效数据收集提升网站排名,鞍山商城网站建设报价
seo网站需要做什么,seo都需要做什么 ,ai怎么做喷漆效果
ChatGPT网页版为什么不能用了?解析原因与解决办法,女人莫名其妙想ai
ChatGPT网络故障报告从协调世界时(UTC)晚上1107左右开始激增,15分钟内引发广泛关注,ai无视进化
丹东抖音seo是什么,抖音seo引流 ,ai工具编写作业指导书
seo网络推广要做什么,seo 网络推广 ,ai少女喝药
SEO可以帮助网站在搜索引擎中获得较高的排名-助力企业数字化转型的关键,赵立新AI换脸图片对比
揭开“好的AI软件”背后的秘密:让生活和工作更智能的利器
SEO爱站:提升网站排名,赢得流量的秘密武器,优化网站设计价格多少
优化工具:提升工作效率的秘密武器,网站模板的优化策略是什么
SEO在线服务-让您的网站快速跃升至搜索引擎前列,江西小红书营销推广案例
互联网资源的无限潜力:如何利用数字世界为个人和企业创造价值,信阳网站建设正规公司
SEO教研:数字营销新趋势,提升网站流量与转化率的关键,齐鲁证券网站建设
SEO地址优化的秘诀:提升网站排名与流量的关键,临沂如何优化网站关键词
AI免费生成文章让创作变得轻松自如
打破创作边界,无限可能无限制生成文章的AI
360优化关键词-提升网站流量与排名的秘密武器,美拍ai
如何用AI写公众号文章?让创作更高效、更轻松
SEO导航:助力网站提升流量与排名的必备工具,荣昌建筑网站建设
SEO如何做?全方位解析提升网站排名的秘诀,AI翻译好处
seo链接锚是什么,什么是锚链接,如何设置锚链接 ,保山智能AI