簡單理解的話就是在一個函數(shù)執(zhí)行完畢后际乘,得到想要的特定數(shù)據(jù)后在去執(zhí)行的函數(shù)
把一個函數(shù)作為參數(shù)傳遞
<html>
<head>
<title>回調(diào)函數(shù)(callback)</title>
<scriptlanguage="javascript" type="text/javascript">
????function test(){
????????var score = document.getElementById("score").value;
????????myfun(score,function(){
????????????alert("這是回調(diào)函數(shù)悔详,應(yīng)該在最后");
????????});
????}
????function myfun(num,callback){
????????if(num<60){
????????????alert("不及格");
????????}else if(num<90){
????????????alert("良好");
????????}else{
????????????alert("優(yōu)秀");
????????}
????????callback();
????}
</script>
</head>
<body>
<h1>學(xué)習(xí)js回調(diào)函數(shù)</h1>
成績:<inputtype="text" id="score"/></br>
<inputtype="button" value="判斷" onclick="test()" />
<p>應(yīng)該能看到調(diào)用了兩個回調(diào)函數(shù)</p>
</body>
</html>
它的主要 作用是在當(dāng)一個函數(shù)執(zhí)行完成后,才來執(zhí)行此函數(shù)砂轻。在ajax請求中常用于根據(jù)不同的返回結(jié)果來處理不同的任務(wù)猫十,
傳統(tǒng)函數(shù)以參數(shù)形式輸入數(shù)據(jù)蚓再,并且使用返回語句返回值。理論上一姿,在函數(shù)結(jié)尾處有一個return返回語句七咧,結(jié)構(gòu)上就是:一個輸入點(diǎn)和一個輸出點(diǎn)。這比較容易理解啸蜜,函數(shù)本質(zhì)上就是輸入和輸出之間實現(xiàn)過程的映射坑雅。
但是,當(dāng)函數(shù)的實現(xiàn)過程非常漫長衬横,你是選擇等待函數(shù)完成處理裹粤,還是使用回調(diào)函數(shù)進(jìn)行異步處理呢?這種情況下蜂林,使用回調(diào)函數(shù)變得至關(guān)重要遥诉,例如:AJAX請求。若是使用回調(diào)函數(shù)進(jìn)行處理噪叙,代碼就可以繼續(xù)進(jìn)行其他任務(wù)矮锈,而無需空等。實際開發(fā)中睁蕾,經(jīng)常在javascript中使用異步調(diào)用苞笨,甚至在這里強(qiáng)烈推薦使用!