js中的回調函數的理解和使用方法
一. 回調函數的作用
js代碼會至上而下一條線執行下去,但是有時候我們需要等到一個操作結束之后再進行下一個操作,這時候就需要用到回調函數。
二. 回調函數的解釋
因為函數實際上是一種對象,它可以存儲在變量中,通過參數傳遞給另一個函數,在函數內部創建,從函數中返回結果值”,因為函數是內置對象,我們可以將它作為參數傳遞給另一個函數,到函數中執行,甚至執行后將它返回,它一直被“專業的程序員”看作是一種難懂的技術。
回調函數的英文解釋為:
A callback is a function that is passed as an argument to another function and is executed after its parent function has completed.
翻譯過來就是:回調函數是一個作為變量傳遞給另外一個函數的函數,它在主體函數執行完之后執行。
function A有一個參數function B,function B會在function A執行完成之后被調用執行。
三. 回調函數的使用方法
代碼如下:
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請求,比如處理文件等。