码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript ——内部函数和匿名函数

时间:2016-05-15 12:33:16      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:

 在JS中,函数是一种数据类型,可以将它赋值给变量,因此函数可以这样创建:

1 var func=function(){
2       alert("func");      
3 }
4 func();

既然函数是一种数据类型,那么同样可以将函数作为另一个函数的返回值:

1 var func=function(data1){
2     return function(data2){
3         alert(data1+"这是一个内部匿名函数,被返回给变量func    "+data2);
4     }
5 }
6 func(1)(2);   

运行结果:“1这是一个内部匿名函数,被返回给变量func  2”

上面代码中,func()()似乎有些奇怪,其实还有另一种形式:

1 var func=(function(){     
2     return function(){
3          alert("这是一个内部匿名函数,被返回给变量func");
4      }
5 })();
6 func();

运行结果:“这是一个内部匿名函数,被返回给变量func   2”      注:因为最外层的function是一个匿名函数且没有赋值给其他变量,因此无法传值调用。

结合这两种情况,会发现其实fun()()等价于(function(){return function(){alert ("这是一个内部匿名函数");}})()。

理解清楚这一点,对于JavaScript中的闭包的理解会有好处!

JavaScript ——内部函数和匿名函数

标签:

原文地址:http://www.cnblogs.com/GeoChen/p/5494823.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!