读《Javascript设计模式》的总结
一个在前端路上奔跑的小白
什么是高阶函数
1. 如果一个函数的参数是一个函数 (回掉函数就是高阶函数)
2. 如果一个函数返回一个函数
* 满足以上两点的就算是高阶函数
使用场景有哪些
比如 我们想在一个方法上进行拓展 在不改变原有方法的结构,且使得可以满足我们业务需求时 就会用到高阶函数
例子
// 比如这里我们其实想进行拓展 但是不能改变原有方法代码
function say() {
console.log('say');
}
// 然后我们 Function 的原型上定义个before的方法
Function.prototype.before = function (callback) {
console.log('before');
// 这里注意 谁调用before方法 this 是谁
return () => {
callback();
this();
}
};
// 然后 say.before 进行调用 传入一个方法(这个方法就是我们需要拓展的业务),
// 然后 say.before 执行,返回一个函数,变量beforeSay接收
let beforeSay = say.before(function () {
console.log('before say');
});
// beforeSay执行,其实就是 before 返回的方法执行
beforeSay();
总结
看到这里你应该对高阶函数有初步的认识了吧,但要熟练的运用在开发中,还需要我们更深入的去了解它们内在的含义。
第一次写分享欢迎前辈们指正不对的地方 --- 一个在前端路上奔跑的小白