javascript匿名函数小结

上一篇关于javascript匿名函数的博客:http://blog.csdn.net/wusuopuBUPT/article/details/14522631


首先列举下常见的几种声明javascript函数的方法:

function demo(){
    // 函数主体部分
}

它的实质,是将函数主体赋值给了demo变量,这个函数主体是:
function(){
    // 函数主体部分
}

所以,demo() 函数也可以这样定义:
var demo=function(){
    // 函数主体部分
}

可以这样来调用函数:
demo();

小括号的作用是将demo变量所指向的函数主体(代码块)作为函数执行。


如果不加小括号,函数主体仅仅是一段文本,一段字符串,不会执行。

举个栗子:

<script>
	var total = 1;
	var demo = function() {
		total = 10;
		return total;
	}
	
	alert(demo); //输出函数体
	alert(total); // 1
	alert(demo()); // 10
	alert(total); // 10
</script>


匿名函数

匿名函数,可以理解为定了一个函数,但是没有将它赋值给变量。

定义方式如下:

function([parameters]){
    statements;
    [return表达式;]
}


匿名函数的调用:


匿名函数没有函数名,也没有指向它的变量,不能像具名函数一样可以在任何地方调用,匿名函数必需在定义后立即执行

上面已经提到,小括号的作用是将代码块作为函数执行,在小括号内一样可以传递参数,所以,匿名函数可以使用小括号来调用和执行:

(function([parameters]){
    // 函数主体部分
})([parameters]);

第一个小括号将函数体包围起来,第二个小括号执行函数体,[parameters]是要传递的参数列表。


例子1:
(function(){
    alert("匿名函数");
})();

例子2:
(function(x,y){
    alert(x+y);
})(1,2);

注意:最后要加上分号“ ; ”,这不是一个代码块,而是调用函数。

例子3:用匿名函数计算1+2+3+...+99+100的值。

<script language="JavaScript" type="text/javascript">
(function(m,n){
    var total=0;
    if(m>=n){
        alert(" 数值范围不正确! ");
        return false;
    }
    for(var i=m;i<=n;i++){
        total+=i;
    }
    alert(total);
})(1,100);
</script>

保存并执行代码,弹出警告框,显示 5050 ,匿名函数成功执行了。


例子4:有返回值的匿名函数
<script language="JavaScript" type="text/javascript">
alert(
    (function(m,n){
        var total=0;
        if(m>=n){
            alert(" 数值范围不正确! ");
            return false;
        }
        for(var i=m;i<=n;i++){
            total+=i;
        }
        return total;
    })(1,100)  // 这里不要加分号
);
</script>


保存并执行代码,结果与例子3相同。


总结:函数名是对函数主体(代码块)的引用,小括号是将代码块作为函数执行。


参考:http://www.itxueyuan.org/view/6314.html

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。