JS回调函数

简介: 回调函数     回调函数是一种以参数形式传递给另一个函数的函数。    所谓的回调函数就是指将一个函数的指针(地址),也就是JavaScript中函数的函数名(JavaScript没有像C那样的指针)作为参数传递给另一个函数,当在调用这个参数时,就是调用这个参数指向的函数,这就是回调函数。

回调函数 

    回调函数是一种以参数形式传递给另一个函数的函数。

    所谓的回调函数就是指将一个函数的指针(地址),也就是JavaScript中函数的函数名(JavaScript没有像C那样的指针)作为参数传递给另一个函数,当在调用这个参数时,就是调用这个参数指向的函数,这就是回调函数。我就用生活中的一个例子来反映我的理解:在商场中有寄放物品的小柜子,我将其中一个小柜子的编号(前提是小柜子没锁)给你,你在做某件事的时候需要用小柜子里的东西,你再根据编号去取出来使用。JavaScript中回调函数一般在特定的事件触发后再调用,用来处理这个事件。意思就是自己定义的函数但是由他人去调用执行。

再来说说回调函数的传递方法:         

首先最容易看懂的方法是:
先定义一个函数fun1
function fun1(num1,num2){   
    alert(num1+num2);
}
再定义一个函数fun2
function fun2(num1,num2,fun){ 
    fun(num1,num2);   
}
最后调用函数fun2
fun2(3,5,fun1);

上面的输出结果为8,具体执行顺序是,首先fun2(3,5,fun1);调用fun2函数,并传递三个参数,而函数fun1就被作为参数传递给了函数fun2,接下来继续在fun2的函数体内调用了fun,即被作为参数传递过去的fun1函数,输出结果为8。

接下来是一种匿名方式传递函数:

即不用先定义函数,直接在参数传递的时候定义函数
首先也是定义一个函数fun2
function fun2(num1,num2,fun){
  fun(num1,num2);
}
在这里我们没有和上面一样定义函数fun1了,而是直接将定义和调用函数fun2放在了一起,将函数体传递给fun2
fun2(3,5,function(num1,num2){
 alert(num1+num2);
});

上面的输出结果一样为8,只是这次不是将函数名传递过去,二是直接将函数体作为参数传递给函数fun2。

上面两种方法继续用商场储物柜来解释:第一种方法好比我只将小柜子的号码告诉了你,你要用里面的东西还要自己去取,而第二种方法则是我直接将小柜子里面的东西给你,你不用再亲自到小柜子里面去取。当然这只是我为了记住上面两种方法的区别而做的比喻,在计算机执行并时 我也不知道是不是这样。

还有一种方法就是定义的同时也在调用:

(function fun2(num1,num2,fun){
   fun(num1,num2);
})(3,5,function(num1,num2){
                      alert(num1+num2);   
});

上面的结果同样为8,我在fun2函数外面打上括号表示立即执行,上面的方法其实就是下面这种形式的简写

function fun2(num1,num2,fun){    
           fun(num1,num2);
}
fun2(3,5,function(num1,num2){        
             alert(num1+num2);
});

 

相关文章
|
26天前
|
JavaScript
JS回调函数
JS回调函数
9 0
|
1月前
|
存储 JavaScript 前端开发
js开发:请解释什么是回调函数(callback function),并给出一个示例。
回调函数是JavaScript中处理异步编程的一种常见模式,常用于事件驱动和I/O操作。它们作为参数传递给其他函数,在特定条件满足或任务完成后被调用。例如,`asyncOperation`函数接受回调函数`handleResult`,在模拟的异步操作完成后,调用`handleResult`并传递结果。这使得程序员能在操作完成后执行后续任务。
19 1
|
1月前
|
JavaScript 前端开发 Java
Java Script中的回调函数,可以用来做什么
Java Script中的回调函数,可以用来做什么
10 0
|
1月前
|
JavaScript 前端开发 UED
解释 JavaScript 中的异步编程和回调函数。
解释 JavaScript 中的异步编程和回调函数。
15 0
|
3月前
|
前端开发 JavaScript 数据处理
【面试题】 javaScript 进阶之路 --- 《加深理解回调函数》
【面试题】 javaScript 进阶之路 --- 《加深理解回调函数》
|
3月前
|
JavaScript 前端开发
Node.js 回调函数的原理、使用方法
Node.js 回调函数的原理、使用方法
38 1
|
4月前
|
JavaScript 前端开发 API
JS中的 回调函数(callback)
JS中的 回调函数(callback)
52 0
|
4月前
|
前端开发 JavaScript
异步编程:由于JS是单线程执行的,所以对于耗时的操作(如网络请求),需要通过异步编程来处理。回调函数、Promise、async/await都是常用的异步编程方式。
异步编程:由于JS是单线程执行的,所以对于耗时的操作(如网络请求),需要通过异步编程来处理。回调函数、Promise、async/await都是常用的异步编程方式。
41 1
|
4月前
|
JavaScript 前端开发
JS - 回调函数
JS - 回调函数
45 0
|
5月前
|
JavaScript 前端开发 Java
Node.js自学笔记之回调函数
Node.js自学笔记之回调函数
20 0