1、首先理解自调函数:(有名自调与匿名自调)
两个圆括号,第二个括号传递参数即可自调。
(function test(para){
alert("test函数"+para)
})('1');
(function(para){
alert("匿名函数"+para)
})('2');
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);
https://www.cnblogs.com/qlqwjy/category/1035591.html