javascript高阶函数简介
首先,参数的高阶函数是函数:
功能functest(F){
决定参数是否简单/函数
如果((typeof f)= =功能){
(f);
} }
functest(function(){ });
这是一个简单的高阶函数,参数为函数。当调用functest,输入一个函数作为参数,并执行输入functest匿名函数。当然,这样的代码片段是没有实际意义的。
1。返回函数值的高阶函数:
功能functest(){
返回(函数){ };
}
var = functest();
functest返回一个函数调用。
两。复点的一个例子:
数字类型添加
功能(A,B){ addint
返回parseInt(一)+ parseInt(B);
}
字符串类型添加
功能(A,B){向此路径添加文本字符串
返回a.tostring()+()b.tostring;
}
函数添加(类型){
如果(type = ){
返回向此路径添加文本字符串;
其他{ }
返回addint;
}
}
VaR data1 =加(字符串)(1
12
VaR数据=加(int)(1
3
上面的例子实现了一个字符串类型的添加,除了添加了数字类型。如果输入参数是String,则调用Add函数,并输出一个字符串拼接函数;如果输入参数为int,则输出数字添加函数。
三。高阶函数的实用功能:
上面的代码示例基本上显示了高阶函数是什么,下面是高阶函数与实际编程之间的关系。
1,回调函数
函数回调(值){
警报(值);
}
功能functest(价值,F)
f参数检测,检查f是否是一个函数
如果(typeof = = = 'function回调){
F(价值);} } functest(1,回调);
1
在这个例子中,当functest叫做回调函数是在functest,即,实现回调。
2,数据过滤和排序算法。
var arr = { 0,2,11,9,7,5 };
排序算法
功能funccomp(A,B){
如果(< b){
返回- 1;
}如果((b)){
返回1;
其他{ }
返回0;
}
}
过滤器算法
功能funcfilter(项目、指标、阵列){
返回项目> 5;
}
数组顺序
Arr.sort(funccomp);
警报(arr.join(','));
/ / 0,2,5,7,9,11
阵列筛选
无功arrfilter = arr.filter(funcfilter);
警报(arr.join(','))
/ / 5,7,9,11
3、DOM元素事件定义
无功btnclick = document.getelementbyid(mybtn);
用于Firefox的测试环境
BtnClick。addEventListener(点击功能(e){)
警惕(我是一个按钮!);
我是一个按钮},false);
在上面的例子中,一个mybtn ID按钮文件中定义。JS脚本添加点击事件,在第二个参数是一个函数调用addEventListener。
结束:高阶函数不是Javascript的专利,但它绝对是Javascript编程的工具,高阶函数实际上是基本算法的重新抽象。我们可以使用它来改进代码的抽象,最大限度地重用代码,编写更简洁、更可重构的代码。