前言
函数是一门语言的重要组成部分,并且js中的函数还有很多特别的地方,比如函数是第一公民,那么这次来了解一下什么是高阶函数。
什么是高阶函数
高阶函数的概念很简单,指的就是一个函数将另一个函数作为参数,那么这个函数就是高阶函数。
一个简单的高阶函数:1
2
3
4
5
6
7function sum(x, y, fn) {
return fn(x) + fn(y);
}
function add1(num) {
return num += 1;
}
console.log(sum(2, 3, add1));
这就是一个简单的高阶函数,将一个函数作为另一个函数的参数。
JS中自带的高阶函数
map/reduce
filter
sort
。。。还有其他很多的方法都是高阶函数
以上这些我们经常用的方法其实都是高阶函数,因为我们每次在使用时都需要传递一个函数作为参数。
自己写一个Map函数
既然我们现在知道了什么是高阶函数,那么我们就可以自己写一个与js中自带的高阶函数类似的高阶函数出来,这里我们自己写一个类似map方法的高阶函数出来:
1 | Array.prototype.myMap = myMap; |
这样就实现了一个我们自己的map方法,在效果方面与js中自带的方法几乎没有差别,实现js中其他的高阶函数的做法和这个类似。
总结
通过了解掌握高阶函数对于理解js中的函数很有帮助,并且学会使用高阶函数在以后的开发中也会很有帮助。