function fn(){
alert("这是使用function语句进行函数定义")
}
fn()
/*第二种方法,使用Function()构造函数克隆函数*/
var F = new Function("a","b","alert(a+b)")
F(a,b)
其实相当于如下代码:
function F(a,b){
alert(a+b)
}
/*第三种方法,使用函数直接量*/
var zhenn = function(){
alert("zhenn")
}
zhenn()
Javascript中定义函数的方式有多种,函数直接量就是其中一种。如var fun = function(){},这里function如果不赋值给fun那么它就是一个匿名函数。好,看看匿名函数的如何被调用。 方式1,调用函数,得到返回值。强制运算符使函数调用执行(function(x,y){ alert(x+y)return x+y}(3,4))方式2,调用函数,得到返回值。强制函数直接量执行再返回一个引用,引用再去调用执行(function(x,y){ alert(x+y)return x+y} )(3,4)这种方式也是很多库爱用的调用方式,如jQuery,Mootools。 方式3,使用voidvoid function(x) { x = x-1alert(x)}(9)JS函数的定义方式比较灵活,它不同于其他的语言,每个函数都是作为一个对象被维护和运行的。先看几种常用的定义方式:
function func1([参数]){
/*函数体*/
}
var func2=function([参数]){
/*函数体*/
}
var func3=function func4([参数]){
/*函数体*/
}
var func5=new Function()
上述第一种方式是最常用的方式,不用多说。
第二种是将一匿名函数赋给一个变量,调用方法:func2([函数])
第三种是将func4赋给变量func3,调用方法:func3([函数])或func4([函数])
第四种是声明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>
用同样的方法可以去理解第三种定义方式。
第四种定义方式也是需要声明对象后才可以引用。