参考四种函数调用:http://www.cnblogs.com/qlqwjy/p/7660013.html

        http://www.cnblogs.com/qlqwjy/p/7660375.html

 

1.首先理解自调函数:(有名自调与匿名自调)

  两个圆括号,第二个括号传递参数即可自调。

<script type="text/javascript">
    (function test(para){
        alert("test函数"+para)
    })('1');

    (function(para){
        alert("匿名函数"+para)
    })('2');
</script>

 

 

 

 

2.有名字函数的调用:

  alert(test)是打印test函数的语句,test相当于一个变量,值为整个声明函数的语句test(1)可以理解为(test)(1),也就是先用括号将test变量包起来然后加个(1)形成函数调用形式

function test(para){
    alert("test函数"+para);
}
alert(test);
test(1);

 

3.匿名函数的调用:

  alert(fun)是打印匿名函数的语句,fun相当于一个变量,值为整个声明函数的语句。fun(2)可以理解为(fun)(2),也就是先用括号将fun变量包起来然后加个(2)形成函数调用形式.

var fun = function(para){
    alert("匿名函数"+para)
}
alert(fun);
fun(2);

 

 

4.匿名函数也可以带函数名字:

var fun = function test3(para){
    alert("匿名函数"+para)
}
alert(fun);
fun(2);

 

5.直接量函数

  只要是表达式语法,脚本宿主就认为 function 是一个直接量函数,如果什么都不加,光以 function 开头的话则认为是一个函数声明,把 function 写进一个表达式内部,比如四则运算,宿主也会将其当作是一个直接量,如下:

  只有函数表达式可以被立即调用,函数声明不可以.

alert(10+function(para){return para;}(5))
    
+function (a) {
    alert(a)
}('a');

 

 

 

 

 

 

var fun = function test3(para){
    return "3";
}();
alert(fun);

 

 

【当你用心写完每一篇博客之后,你会发现它比你用代码实现功能更有成就感!】