JavaScript 高阶函数详解与实战应用

作者:青柠

时间:2026-10-29

浏览:581

本文深入解析 JavaScript 高阶函数的概念,涵盖参数为函数与返回值为函数两种类型。通过具体代码示例展示其在回调机制、数组排序筛选及 DOM 事件绑定中的实际应用,阐述如何利用高阶函数提升代码抽象度与复用性,实现更简洁、易重构的编程风格。

文章目录

JavaScript 高阶函数概念

高阶函数是指接收函数作为参数或返回函数作为值的函数。由于 JavaScript 是弱类型语言,不对函数输入参数和返回值进行强制类型定义或检查,因此函数可以自然地被传递或返回,这体现了 JavaScript 对高阶函数的原生支持。

参数为函数的高阶函数

一、参数为函数的高阶函数


function funcTest(f){  
//简易判断一下实参是否为函数
if((typeof f)==”function”){
f();
}}
funcTest(function(){ });

以下示例展示了一个简易的高阶函数,调用 funcTest 时传入一个函数作为参数,并在函数内部执行该匿名函数。尽管此代码片段缺乏实际业务意义,但它直观地演示了将函数作为参数传递的机制。

返回值为函数的高阶函数

一、返回值为函数的高阶函数


function funcTest(){
return function(){};
}
var f=funcTest();

调用 funcTest 后,该函数返回另一个函数。

高阶函数复杂示例

二、一个复杂一点的例子


//Number类型相加  
function addInt(a,b){
return parseInt(a)+parseInt(b);
 }
//String类型相加
function addString(a,b){
return a.toString()+ b.toString(); 
}  
function add(type){
if(type==="string"){
return addString;
}else{
return addInt; 
}
}
var data1=add("string")("1","2");
//12
var data2=add("int")("1","2");
//3

上述示例实现了字符串类型与数字类型相加逻辑的分离。当调用 add 函数并传入参数为“string”时,返回字符串拼接函数;若传入参数为“int”,则返回数字相加函数。

高阶函数的实际应用场景

三、高阶函数的实际作用

前述示例主要说明高阶函数的定义,接下来探讨高阶函数在实际编程中的具体应用场景。

1, 回调函数


function callback(value){
alert(value);
}
function funcTest(value,f)
//f实参检测,检查f是否为函数 
if(typeof callback==='function'){
f(value);}}funcTest(‘1',callback);
//1

在示例中,调用 funcTest 时,其内部会调用 callback 函数,从而实现了回调机制。

2, 数据筛选与排序算法


var arr=[0,2,11,9,7,5];
//排序算法
function funcComp(a,b){
if(a<b){
return -1;
}else if(a>b){
return 1;
}else{
return 0;
}
}
//过滤算法
function funcFilter(item,index,array){
return item>=5;
}
//数组顺序排列
arr.sort(funcComp);
alert(arr.join(','));
//0,2,5,7,9,11
//筛选数组
var arrFilter=arr.filter(funcFilter);
alert(arr.join(‘,'))
//5,7,9,11

3, DOM 元素事件定义


<html><title></title>
<body><input type=”button” value=”ClickMe” id=”myBtn” >
<script type=”text/javascript>
var btnClick=document.getElementById(“myBtn”);
//测试环境为FireFox
btnClick. addEventListener(“click”,function(e){
alert(“I'm a button!”);
//I'm a button},false);
</script>
</body>
</html>

在以上示例中,文档定义了一个 id 为 myBtn 的按钮,JavaScript 脚本通过 addEventListener 为其添加点击事件,其中第二个参数是一个函数。

结束语:高阶函数并非 JavaScript 独有,但绝对是 JavaScript 编程的利器。高阶函数本质上是对基本算法的再次抽象,利用这一点可以提高代码的抽象程度,实现最大程度的代码重用,从而编写出更简洁、更利于重构的代码。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章