javascript的匿名函数与闭包
来源:互联网 发布:网络机房建设方案 编辑:程序博客网 时间:2024/04/29 16:13
JavaScript匿名函数
所谓匿名函数就是没有命名的函数,看起来有点难以理解,其实很常见,下面举一个小例子。
这样就创建了一个匿名函数,这个function没有函数名,但可以被调用和执行,当网页加载完毕时,会执行alert()。
(function(x,y){alert(x+y)})(2,3); //显示结果为5
</script>
上面的方法仍然是创建了一个匿名函数,并使用()优先表达式强制执行函数。
JavaScript闭包(closure)
闭包其实就是利用了函数作用域和匿名函数的知识,当函数A执行结束时,一部分变量变量被B引用,被引用的变量不能释放,形成了所谓的闭包。这里有篇很好的文章,可以参考一下。
下面看一个小例子:
<script language="javascript" type="text/javascript">
function show(){
var n=3;
setTimeout(function(){alert("first:"+n);},3000); //3秒后显示first:3
alert("second:"+n); //显示second:3
}
show();
function show2(){alert("第一个函数执行结束");}
show2();
</script>
运行上面的函数后,首先alert显示"second:3",然后显示"第一个函数执行结束",3秒后显示“first:3”。
仔细看一下,函数show执行结束的时候,变量n应该被释放了,内存里也就不存在了,怎么过了3秒还能显示出"first:3"呢?闭包恰恰就在此产生了,当函数show执行结束的时候,想要释放内存里的n,但发现变量n还在被一个匿名函数引用,要在3秒后调用,根据JavaScript闭包原理,内存里的n被保留了下来,于是在三秒以后仍然可以调用n。
- javascript的匿名函数与闭包
- javascript 闭包(closure) 与匿名函数的this
- Javascript 匿名函数与闭包
- [JavaScript]-----匿名函数与闭包
- JavaScript匿名函数与闭包
- javascript之闭包与匿名函数
- javascript 匿名函数与闭包
- javascript的闭包和匿名函数
- 匿名函数与闭包的区别
- Scala 的 "匿名函数"与 "闭包"!
- 匿名函数与闭包的区别
- 匿名函数与闭包的区别
- [从jQuery看JavaScript]-匿名函数与闭包
- JavaScript中的匿名函数及函数的闭包
- JavaScript中的匿名函数及函数的闭包
- JavaScript中的匿名函数及函数的闭包
- JavaScript中的匿名函数及函数的闭包
- JavaScript中的匿名函数及函数的闭包
- 简明python教程学习笔记(八)-元组
- 安全的类型转换
- boosting 25 year(听报告)
- 阿里巴巴背后的阿里之父
- SSH免密码登录的原理
- javascript的匿名函数与闭包
- 【Solr4.7.0学习笔记】系列之一:solr 竞价排名
- 【Github教程】史上最全github使用方法:github入门到精通
- 想想怎么用程序来写文章
- 如何彻底隐藏系统自带的UITabBar
- win7 64位搭建scrapy
- Nvelocity
- 如何恢复笔记本的工作报表呢
- find命令