回調函數

回調函數,就是把一個函數作爲參數傳給另一個函數,在主函數執行完畢後,再去執行這一個函數。

在mdn的解釋:A callback function is a function passed into another function as an argument, which is then invoked inside the outer function to complete some kind of routine or action.

作爲回調函數,一般都是比較耗時的,常見的ajax請求就是其一。

這裏引用下“我的老婆是校花”的例子: 

//定義主函數,回調函數作爲參數
function A(callback) {
    callback();  
    console.log('我是主函數');      
}

//定義回調函數
function B(){
    setTimeout("console.log('我是回調函數')", 3000);//模仿耗時操作  
}

//調用主函數,將函數B傳進去
A(B);

//輸出結果
我是主函數
我是回調函數 

此外我發現,在廖雪峯老師的ajax教程中,

request.onreadystatechange = function () { // 狀態發生變化時,函數被回調
    if (request.readyState === 4) { // 成功完成
        // 判斷響應結果:
        if (request.status === 200) {
            // 成功,通過responseText拿到響應的文本:
            return success(request.responseText);
        } else {
            // 失敗,根據響應碼判斷失敗原因:
            return fail(request.status);
        }
    } else {
        // HTTP請求還在繼續...
    }
} 

這樣也屬於函數的回調。這裏的function應該是被當作是參數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章