什么是高阶函数:
- 可以把函数作为参数传递给另一个函数
- 可以把函数作为另一个函数的返回结果
1、函数作为参数:
// forEach
let a = [1, 2, 3, 4, 5];
function forEach(arr, fn) {
for (let i = 0; i < arr.length; i++) {
fn(arr[i], i);
}
}
forEach(a, function (item, index) {
console.log(item, index);
});
// filter
let a = [1, 2, 3, 4, 5];
function filter(arr, fn) {
let result = [];
for (let i = 0; i < arr.length; i++) {
if (fn(arr[i])) {
result.push(arr[i]);
}
}
return result;
}
function fn(a) {
return filter(a, function (item) {
return item % 2 === 0;
});
}
console.log(fn(a));
2、函数作为返回值
function makeFn() {
let msg = "Hello";
return function () {
console.log(msg);
};
}
makeFn()();
// 只支付一次
function once(fn) {
let flag = true;
return function () {
if (flag) {
flag = false;
return fn.apply(this, arguments);
}
};
}
let pay = once(function (money) {
console.log(money);
});
pay(5);
pay(15);
高阶函数的作用及意义:
1、抽象可以帮我们屏蔽细节,只需要关注于我们的目标
2、高阶函数用来抽象通用的问题
本文深入解析了高阶函数的概念,包括函数作为参数和返回值的应用实例,展示了如何通过抽象提升代码复用性和灵活性。重点介绍了其在屏蔽细节和解决通用问题中的作用。
214

被折叠的 条评论
为什么被折叠?



