js 回调函数和高阶函数(几行代码彻底理解)

什么是回调函数

详细

回调函数就是一个通过函数指针调用的函数。把函数的指针 (内存地址) 作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,指向的函数就是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。(以上节选自百度百科)

理解

js中函数也是对象,把函数所存储在的 内存地址 作为参数传递给另一个函数,当这个地址被调用时所指向的函数,就是回调函数。

简略

被作为函数的参数进行传递的函数,就是回调函数

什么是高阶函数

高阶函数是一个 接收函数作为参数或将函数作为输出返回 的函数

几行代码理解 回调 和 高阶

function fun(val) {
   console.log(val)
};

function fn(callback) {
   let num = 10;
   callback(num);
};

fn(fun);

代码输出的结果是 10,下面是我理解的执行详细步骤

  1. 调用 fn函数,实参为 fun函数
  2. 执行 fn函数, callback 作为函数形参
  3. 声明一个变量 num 并赋值为 10
  4. 调用 callback 的回调函数 fun,实参是 num 值为10
  5. 执行 fun回调函数,接收参数 num 并打印,所以结果为 10

总结

回调函数

上面代码 fun函数 被作为 fn函数 的参数进行调用
根据回调函数的定义 被作为函数的参数进行传递的函数为回调函数
所以 fun 就是 回调函数

高阶函数

上面代码 fn函数 的参数为 fun函数
根据高阶函数的定义 接收函数作为参数的函数为高阶函数
所以 fn 就是 高阶函数

闭包函数

为什么还要提一下闭包呢?


不难看出,上面代码 回调函数fun 访问到了 fn函数 作用域内的变量 num,这在js作用域链是不被允许的,只有闭包才可以突破作用域链,将函数内部的变量和方法传递到外部,让外部函数可以访问到内部函数的变量和方法。,但回调函数也访问到了,因此 回调函数 也是 闭包函数

  • 8
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

温情key

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值