在开始听到javascript匿名函数就糊涂,对匿名函数仔细研究了一下,也就是那么回事。
首先看一下javascript的函数
1.一般函数定义
function name(args){//statement语句}
调用:name(args);
例子
<script language="javascript">
function add(x,y){
alert(x+y);
}
add(1,2);
</script>
2.采用函数直接命名的方式
var functionname =function(args){//statement语句}
还是上面的函数例子
<script language="javascript">
var add =function (x,y){alert(x+y);}
add(1,2);
</script>
3.采用对象的方式
var functionname =new Function("args","statement语句");
还是上面的函数例子
<script language="javascript">
var add = new Function("x","y","alert(x+y)");
add(1,3);
</script>
然后看匿名函数是如何定义的,看上面的一半函数的使用都会有一个函数名或者对象,从匿名函数这个名词中就可以知道,匿名函数是不需要名字的。我们从第二种的直接命名方式中演变javascript匿名函数
原来语法var functionname =function(args){//statement语句}
那么从前面赋值看,后面的返回一函数并给了定义的名称,从调用看是functionname()直接将原来的函数名称加括号,那么我们演变一下
function(args2){//statement语句}(args1)
直接看来,args1 就是传递给args2的,但在实际操作例子中:
<script language="javascript">
function(x,y){alert(x+y);}(1,2);
</script>
这样操作是不成功的。
为什么?因为function必须返回给一个定义的名称,那么我们采用匿名函数必须把其独立出来
<script language="javascript">
(function(x,y){alert(x+y);})(1,2);
</script>
运行成功,这样就实现了匿名函数
在jquery中就用到了匿名函数。
更多信息请查看IT技术专栏