你的位置:首页 > Java教程

[Java教程]js 中特殊形势的函数


javascript中的匿名函数,那什么叫做匿名函数?

匿名函数就是没有函数名称;演示代码:

 

1 <script>2   function(x,y){3     return x+y  //这个就是一个匿名函数,没有函数名,但是这个函数不能调用。如何调用呢?4   }        //要声名一个变量,然后把这个匿名函数的执行的代码,和返回值赋值给声名的变量5 </script>

 

 

 

javascript中的函数也是一种数据类型,只不过这种特殊类型有两个重要的特性:

1.他们所包含的是代码。

2.他们是可以执行的。演示代码:

 

 1 <script> 2    var text = function(x,y){ 3      return x+y;    //把这匿名函数赋值给变量text,说明这个匿名函数其实也是一个数据类型 4    } 5    alert(typeof text)  //查看这个数据类型,=>function 数据类型是一个函数数据类型 6    alert(text(1,2))   //然后我们再通过调用这个赋值给这个变量。=>3 7    var text1 = text;  //然后这个被赋值的这个函数数据的变量还可以再赋值给其它变量 8    alert(text1(4,5))  //然后再次调用赋值后的变量 =>9 9 10 </script>

 

可以将匿名函数作为参数传给其它函数,接收方函数就可以通过所传递进来的函数完成某些功能

先了解非匿名函数的回调方法 演示代码:

 1 <script> 2   function calc(x,y){ 3     return x()+y();  //把text1函数的返回值作为calc函数参数x的值来传参调用 4   }           //把text2函数的返回值作为calc函数参数y的值来传参调用 5   function text1(){ 6     return 1 7    } 8   function text2(){ 9     return 210    }11   alert(calc(text1,text2))   //=>312 13 </script>

再来看看匿名函数的回调方法 演示代码:

1 <script>2   function calc(x,y){3     return x()+y();  //把text1函数的返回值作为calc函数参数x的值来传参调用4   }           //把text2函数的返回值作为calc函数参数y的值来传参调用5   alert(calc(function(){return 1},function(){return 2}))6       //本质上用两个匿名函数的返回值做了x,y的传参7 </script>

回调函数的实列  演示代码:

 1 <script> 2     function addOne(a){ 3       return a+1 4     } 5     function calc(a,b,c,callback){ 6       var arr=[];   //先声名一个空数组 7       for(var i = 0 ;i<3;i++){  //循环遍历 8         arr[i] = callback(arguments[i]*2) //用arguments对象把三个参数的值乘以2,返回给addOne函数来调用产生的返回值再赋值给声名的空数组 9       }10       return arr;11     }12     alert(calc(1,2,3,addOne))   //然后进行调用  =>3,5,713     alert(calc(2,3,4,function(a){return a+1}))//这个用的是用一个匿名函数来回调 //返回的是5,7,914 </script>

可以用call来进行回调函数 语法为:函数名.call(函数名,参数1,参数2)

可以用apply进行回调函数  语法为. 先声名一个数组 var a =[参数1,参数2 ]       函数名.apply(函数名,a)

自调的匿名函数,我们也可以称为立即调用的匿名函数。

优点:  使用自调的匿名函数不会产生任何全局变量。

缺点: 函数无法重复执行,适合执行一些一次性初始化的工作     演示代码:

1 <script>2   (function(x,y){3     alert(x+y)4   })(1,2)5 </script>

 




印度尼西亚特价旅游多少钱到印度尼西亚游费用报价大全印度尼西亚自助游攻略2015怎样去印度尼西亚旅游特价印度尼西亚游连山金子山有卖吃的吗?金子山吃饭方便吗? 连山金子山爬山要多久?金子山玩完要多久? 坐看舒云卷 偷得浮生半日闲(2) 连山到金子山怎么坐车?连山到金子山有班车吗? 深圳欢乐谷2015元旦狂欢活动?欢乐谷元旦优惠价? 2015元旦深圳欢乐谷有哪些好玩的?欢乐谷元旦门票价格? 深圳欢乐谷2015元旦有什么活动?欢乐谷元旦有哪些优惠? 深圳东部华侨城大峡谷和茶溪谷学生门票多少?2015圣诞节大峡谷和茶溪谷好玩活动? 马来西亚币兑换人民币哪种方式最划算? 泰国西蒙人妖秀好看吗?泰国西蒙人妖秀怎么样? 去泰国拜县有什么要注意的? 马来西亚有几个机场? 去广州旅游有什么注意事项? H7N9这么厉害,现在还能去旅游吗?要注意些什么 小长假去广州游玩该注意什么事项? 广州北回归线标志塔是世界上最高的北回归线标志塔吗? AT29C257-25PC Datasheet AT29C257-25PC Datasheet AT29C257-70JC Datasheet AT29C257-70JC Datasheet AT29C25770JC Datasheet AT29C25770JC Datasheet 通辽旅游景点大全 通辽旅游景点大全 通辽旅游景点大全 荆门旅游景点大全 荆门旅游景点大全 荆门旅游景点大全 博山溶洞 博山溶洞 博山溶洞