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 2
10      }
11      alert(calc(text1,text2))     //=>3
12
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,7
13          alert(calc(2,3,4,function(a){return a+1}))//这个用的是用一个匿名函数来回调 //返回的是5,7,9
14 </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>
时间: 2024-11-03 21:51:22

js 中特殊形势的函数-匿名函数的应用的相关文章

js中escape对应的C#解码函数 UrlDecode

js中escape对应的C#解码函数 System.Web.HttpUtility.UrlDecode(s),使用过程中有以下几点需要注意 js中escape对应的C#解码函数 System.Web.HttpUtility.UrlDecode(s) //注意编码 需要注意的几点: 1.HttpUtility.UrlEncode,HttpUtility.UrlDecode是静态方法,而Server.UrlEncode,Server.UrlDecode是实例方法. 2.Server是HttpServ

【JS进阶3】闭包和匿名函数

想要学习闭包先来看看什么是匿名函数吧!   (一)匿名函数        匿名函数就是没有名字的函数.他有两种声明方式:        1.典型的函数声明:        function functionName(arg0,arg1,arg2){            //函数体        }        2.函数表达式:        var functionName = function(arg0,arg1,arg2){            //函数体        }   虽然这

day15 内置函数 , 匿名函数

内置函数      匿名函数 python提供的常用的功能,方便开发使用. dir #将对象所有的方法发放置在一个列表中,并返回 print (dir(str)) print (dir(int)) range #函数可创建一个整数对象,一般用在for循环中next #内部实际使用了__next__方法,返回迭代器的下一个项目bool #值用于将给定参数转换为布尔类型,如果没有参数,返回 False int #函数用于将一个字符串或数字转换为整型 print(int(12.73)) #浮点型的,取

速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数

[源码下载] 作者:webabcd 介绍速战速决 之 PHP 函数基础 函数参数 函数返回值 可变函数 匿名函数 闭包函数 回调函数 示例1.函数的相关知识点 1(基础)function/function1.php <?php /** * 函数的相关知识点 1(基础) */ // 可以在相关的 function 声明语句之前调用该函数 f1(); function f1() { echo "f1"; echo "<br />"; } // 这里调用

python学习三十三天函数匿名函数lambda用法

python函数匿名函数lambda用法,是在多行语句转换一行语句,有点像三元运算符,只可以表示一些简单运算的,lambda做一些复杂的运算不太可能.分别对比普通函数和匿名函数的区别 1,普通的函数用法 def func(): print('aaa') func() 2,匿名函数的用法 f=lambda x,y:x*y m=f(3,5) print(m) 输出结果 15 匿名比较复杂的用法条件判断,匿名函数一般搭配函数内置函数使用 map() 文章来自(www.96net.com.cn) 原文地

在Python中递归函数调用举例and匿名函数lambda求1~100的和及计算阶乘举例

1.递归列出目录里的文件的脚本举例列出目录中的文件可以通过下面方法:os.listdir() In [1]: import os In [4]: os.listdir('/root') Out[4]: ['.tcshrc', '.bash_history', '.bashrc', 'ENV', '.cache', '.config', '.cshrc', '.bash_logout', 'python', '.ssh', 'shell', '.bash_profile', '.ipython',

js基础之javascript函数定义及种类-普通涵数-自执行函数-匿名函数

普通函数 1.不带参数 function fucname(){ alert("hello"); } funcname() 2.带参数 function funcname(arg){ alert("hello"); } funcname("Brin") 普通函数,自执行函数 1.不带参数 (function(){ alert(123); })() 2.带参数 (function(arg){ alert(123); })("Brin&quo

立即执行函数—匿名函数

JS中关于(function( window, undefined ) {})(window)写法的理解 2013年01月04日 ? 综合 ? 共 672字 ? 字号 小 中 大 ? 评论关闭 在jquery中我们经常看到以下这段代码:;(function ( $, window, document, undefined ){ //函数体内具体代码 })(jQuery, window,document); 首先说说非常值得提倡的几点:1.代码最前面的分号,可以防止多个文件压缩合并以为其他文件最后

js--call、箭头函数/匿名函数

js中的this指向(较简单的几种): 1.普通函数的this指向window: 2对象方法指向当前对象: 3.()=>箭头函数指向定义时的对象: apply和call可以改变当前的this指向,但是不能改变箭头函数的指向 function foo() { return () => { return () => { return () => { console.log('id:', this.id); }; }; }; } var f = foo.call({id: 1}); va