js中的回調函數的理解和使用方法程序員
一. 回調函數的做用ajax
js代碼會至上而下一條線執行下去,可是有時候咱們須要等到一個操做結束以後再進行下一個操做,這時候就須要用到回調函數。函數
二. 回調函數的解釋spa
由於函數其實是一種對象,它能夠存儲在變量中,經過參數傳遞給另外一個函數,在函數內部建立,從函數中返回結果值」,由於函數是內置對象,咱們能夠將它做爲參數傳遞給另外一個函數,到函數中執行,甚至執行後將它返回,它一直被「專業的程序員」看做是一種難懂的技術。翻譯
回調函數的英文解釋爲:對象
A callback is a function that is passed as an argument to another function and is executed after its parent function has completed.回調函數
翻譯過來就是:回調函數是一個做爲變量傳遞給另一個函數的函數,它在主體函數執行完以後執行。it
function A有一個參數function B,function B會在function A執行完成以後被調用執行。io
三. 回調函數的使用方法console
代碼以下:
function a(callbackFunction){
alert("這是parent函數a");
var m =1;
var n=3;
return callbackFunction(m,n);
}
function b(m,n){
alert("這是回調函數B");
return m+n;
}
$(function(){
var result = a(b);
alert("result = "+ result);
});
執行順序爲:
這是parent函數a
這是回調函數B
result = 4
函數首先執行了主題函數a,以後調用了回調函數b,最後返回函數a的返回值。
再看一段代碼:
//定義主函數,回調函數做爲參數function A(callback) {
callback();
console.log('我是主函數');
}
//定義回調函數function B(){
setTimeout("console.log('我是回調函數')", 3000);//模仿耗時操做 }
//調用主函數,將函數B傳進去A(B);
//輸出結果我是主函數
我是回調函數
上面的代碼中,咱們先定義了主函數和回調函數,而後再去調用主函數,將回調函數傳進去。定義主函數的時候,咱們讓代碼先去執行callback()回調函數,但輸出結果倒是後輸出回調函數的內容。這就說明了主函數不用等待回調函數執行完,能夠接着執行本身的代碼。因此通常回調函數都用在耗時操做上面。好比ajax請求,好比處理文件等。