JS函数的定义方式比较灵活,它不同于其他的语言,每个函数都是作为一个对象被维护和运行的。
先看几种常用的定义方式:
function func1([参数]){/*函数体*/}
上述第一种方式是最常用的方式,不用多说。
var func2=function([参数]){/*函数体*/};
第二种是将一匿名函数赋给一个变量,调用方法:func2([函数]);
var func3=function func4([参数]){/*函数体*/};第三种是将func4赋给变量func3,调用方法:func3([函数]);或func4([函数]);
var func5=new Function();
第四种是声明func5为一个对象。
再看看它们的区别:
function func(){//函数体}//等价于var func=function(){//函数体}但同样是定义函数,在用法上有一定的区别。
<script>//这样是正确的func(1);function func(a){alert(a);}</script>
<script>
//这样是错误的,会提示func未定义,主要是在调用func之前没有定义func(1);var func = function(a){alert(a);}/
/这样是正确的,在调用func之前有定义var func = function(a){alert(a);}func(1);
</script>
用同样的方法可以去理解第三种定义方式。