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

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

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

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

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

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

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

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

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

 <script>
function calc(x,y){
return x()+y(); //把text1函数的返回值作为calc函数参数x的值来传参调用
} //把text2函数的返回值作为calc函数参数y的值来传参调用
function text1(){
return 1
}
function text2(){
return 2
}
alert(calc(text1,text2)) //=>3 </script>

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

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

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

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

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

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

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

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

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

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

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

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

    js中escape对应的C#解码函数 System.Web.HttpUtility.UrlDecode(s),使用过程中有以下几点需要注意   js中escape对应的C#解码函数 System.We ...

  2. JavaScript---js语法,数据类型及方法, 数组及方法,JSON对象及方法,日期Date及方法,正则及方法,数据类型转换,运算符, 控制流程(三元运算),函数(匿名函数,自调用函数)

    day46 一丶javascript介绍 JavaScript的基础分为三个       1.ECMAScript:JavaScript的语法标准.包括变量,表达式,运算符,函数,if语句,for语句 ...

  3. Learning Python 012 函数式编程 2 返回函数 匿名函数 装饰器 偏函数

    Python 函数式编程 2 返回函数 返回函数的意思就是:函数作为返回值.(高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回.) 举个例子:实现一个可变参数的求和. 正常的函数: de ...

  4. python笔记4 内置函数,匿名函数.递归函数 面向对象(基础, 组合,继承)

    内置函数 eval和exec eval :执行字符串中的代码并将结果返回给执行者,有返回值 exec:执行字符串中的代码,往往用于执行流程语句,没有返回值. s1 = '1+2' s2 = 'prin ...

  5. Golang函数-匿名函数与闭包函数

    Golang函数-匿名函数与闭包函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.

  6. day12:闭包函数&匿名函数

    闭包函数 闭包函数的定义: 如果内函数使用了外函数的局部变量并且外函数把内函数返回出来的过程 叫做闭包里面的内函数是闭包函数 一个简单的闭包函数示例: def songyunjie_family(): ...

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

    [源码下载] 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数 作者:webabcd 介绍速战速决 之 PHP 函数基础 函数参数 函 ...

  8. python基础学习Day14 内置函数 匿名函数

    一.内置函数里几个高频重要函数 (1)min\max函数的用法 以min函数的为例: min:返回可迭代对象的最小值(可加key,key为函数名,通过函数的规则,返回最小值). l1 =[(,),(, ...

  9. ~~函数基础(三):嵌套函数&匿名函数~~

    进击のpython 嵌套函数&匿名函数 讲完作用域之后 对变量的作用范围有大致的了解了吗? 讲个稍微小进阶的东西吧 能够帮助你更加的理解全局和局部变量 嵌套函数 玩过俄罗斯套娃不? 没玩过听过 ...

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

    python函数匿名函数lambda用法,是在多行语句转换一行语句,有点像三元运算符,只可以表示一些简单运算的,lambda做一些复杂的运算不太可能.分别对比普通函数和匿名函数的区别 1,普通的函数用 ...

随机推荐

  1. 【转】shell 教程——06 Shell变量:Shell变量的定义、删除变量、只读变量、变量类型

    Shell支持自定义变量. 定义变量 定义变量时,变量名不加美元符号($),如: variableName="value" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编 ...

  2. IT项目管理的六种错误思维

    导读:在软件行业,在界面设计没有正式展现给客户之前,所有的工作都处于需求调研阶段.很多IT项目经理因为年轻,初生牛犊不怕虎,胆量大,勇气足,敢于在实践中引入新的工具.方法.敢于尝试不是坏事,但试验的风 ...

  3. zoj 3819 Average Score

    Average Score Time Limit: 2 Seconds      Memory Limit: 65536 KB Bob is a freshman in Marjar Universi ...

  4. 关于一次Weblogic活动线程的问题处理

    Weblogic控制台监控发现 环境>>服务器>>你的服务器>>监控>>线程 中活动执行线程竟然是2000多.同一套系统在另一套平台上,并且访问的人不少 ...

  5. 读书雷达 l 业务分析师(BA)篇

    http://chuansong.me/n/412991951441 ThoughtWorks BA社区从2011年起就建立了BA书橱,根据大家的推荐选择了来自软件需求.商业分析.设计思维.软技能,以 ...

  6. 使用Java程序发送Email

        目前很多大型的网站忘记登录密码常见的一种形式是使用邮箱找回密码  最近做项目也有这个需求  现在总结一下  以便以后查看 使用到的包有 mailapi.jar smtp.jar   封装发送邮 ...

  7. jquerymobile-可折叠内容(Collapsible content)

    可能我们在开发中遇到过这样的问题,我们只是看到一个题目或者简单的介绍,然后一点击会在下面展开对应的详细的内容.在jqm中实现这个效果很简单.下面给出一段例子代码: <!DOCTYPE html& ...

  8. Swipecards

    https://github.com/Diolor/Swipecards https://github.com/kikoso/Swipeable-Cards

  9. Cocos2d-x中常用粒子编辑器ParticleDesigner测试例子

    打开 ParticleDesigner 随意选择一种效果 选择save. 类型选择 cocosd(plist)类型保存至桌面 命名为myplist导出至桌面 选择右侧Emitter Config可设置 ...

  10. 微信分组群发45028,微信分组群发has no masssend quota hint

    微信分组群发45028,微信分组群发has no masssend quota hint >>>>>>>>>>>>>> ...