博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
匿名函数与闭包
阅读量:6679 次
发布时间:2019-06-25

本文共 579 字,大约阅读时间需要 1 分钟。

闭包的英文单词是closure,这是JavaScript中非常重要的一部分知识,因为使用闭包可以大大减少我们的代码量,使我们的代码看上去更加清晰等等,总之功能十分强大。

闭包的含义:闭包说白了就是函数的嵌套,内层的函数可以使用外层函数的所有变量,即使外层函数已经执行完毕(这点涉及JavaScript作用域链)。

function fn(){                  var str = 'hello';                   setTimeout(                           function(){ alert(str); } //这是一个匿名函数                       , 2000);    }    fn();

这个例子看上去十分的简单,仔细分析下它的执行过程还是有许多知识点的:fn函数的执行是瞬间的(也许用时只是0.00001毫秒),在fn的函数体内创建了一个变量str,在fn执行完毕之后str并没有被释放,这是因为setTimeout内的匿名函数存在这对str的引用。待到2秒后函数体内的匿名函数被执行完毕,str才被释放。

注意:

1 闭包允许内层函数引用父函数中的变量,但是该变量是最终值

2 内存泄露

使用闭包十分容易造成浏览器的内存泄露,严重情况下会是浏览器挂死

 

转载地址:http://ejyao.baihongyu.com/

你可能感兴趣的文章
一位美国教授与840个公交扒手奇遇记
查看>>
英特尔杨旭:我们是一家数据公司
查看>>
400家门店直接“云”上办公 JASONWOOD 是如何做到的?
查看>>
2016年 DDoS 攻击的四大趋势
查看>>
Apache HTTPD DoS 漏洞CVE-2016-8740 绿盟科技发布安全威胁通告
查看>>
信息安全顶级技能:低调
查看>>
DeepMind表示要给人工智能增加想象力?我们来仔细看看吧
查看>>
“网管”必备的五大网络数据分析工具
查看>>
最佳实践案例丨双十一来了,别让物流行业的敏感数据裸奔
查看>>
阿里云MVP Meetup:《云数据·大计算:海量日志数据分析与应用》之《数据分析展现:可视化报表及嵌入应用》篇...
查看>>
HDS完成收购Pentaho 全力进军物联网和大数据分析领域
查看>>
中国航信借助NetApp存储系统打造高效数据中心
查看>>
增强加密是把双刃剑
查看>>
外媒:清理数据成数据科学家最大挑战
查看>>
载波聚合:保障LTE-A速率的有力武器
查看>>
WHID注入器:在无线环境下实现HID攻击的最新利器
查看>>
智能制造下徐工开启三大改造
查看>>
SOA减低成本提升效率的最有效的思想方法
查看>>
解读:云计算产业“钱”景
查看>>
《认知设计:提升学习体验的艺术》——学习者与你有何不同
查看>>