对JS回调函数的一点理解

之前写的异步JS是纯译文,现在刚好工作了2个月,想谈谈我自己对JS回调函数的一点理解,欢迎渴望大家的指正和交流。

回调函数从形式上看就是把函数b作为参数传给函数a,在a的函数体里调用函数b

1 function a(b) {
2     b();
3 }
4 function b() {
5     ...
6 }

这样做的意义是什么呢

1.控制执行流程,函数b只能在函数a执行后才执行

2.根据不同的需求,可以有各种各样的函数b

3.最重要的,是可以把通过函数a获取的数据传递给函数b,在b里对数据做处理

1  function a(callback) {
2      ...
3      var record = reallyComplexProcedure();  //经过一系列复杂的操作,拿到了数据record
4      if (typeof callback === "function") {
5      callback(record);
6    }
7 } 8 function b(data) { 9 ... //对data做处理 10 } 11 a(b);

我们对函数a里的record感兴趣,并在程序的其他的地方想要对record做各种各样的操作,那么就可以传入对应的回调函数。当然,这种方式的一个明显缺点(我目前的理解)是如果我们对函数a里的record2又感兴趣了,那么就不够灵活了。

原文地址:https://www.cnblogs.com/coiorz/p/4714910.html