コールバック関数の概念:コールバック関数は、関数ポインターを介して呼び出される関数です。関数のポインター(アドレス)を別の関数の引数として渡すと、このポインターが指し示される関数を呼び出すために使用される場合、これはコールバック関数であると言います。
コールバックは、別の関数への引数として渡され、親機能が完了した後に実行される関数です。
コールバック関数を使用する理由:発信者をCalleeから分離できます。発信者は、誰が発信者であるかを気にしません。
このような例を考えてみましょう。
プロジェクトの下部と高レベルが異なる担当者によって調整されている場合。ボトムの人員、私はあなたが必要です。
基礎となるスタッフは、私はあなたにデータを表示して処理する方法を提供しますデータとあなたは自分自身になります。
コードコピーは次のとおりです。
//データは、基礎となるレイヤーによって提供されるデータソースを表し、funcnameは高レイヤーの呼び出し関数を表します
function(data、funcname){
1.Dataはケース1に属し、基礎となる層によって処理されます。
2.Dataはケース2に属します。それは、高レベルで提供される機能を使用します。
...
}
私はまだそれを明確にしていなかったかもしれません、私たちは例を見て、それを一度に理解することができます
コードコピーは次のとおりです。
//提供されたデータソースが整数であり、これは学生のスコアであり、num <= 0の場合、基礎となる層によって処理され、n> 0の場合、上層によって処理されます。
//次の関数をコピーして、1.jsに保存します
関数f(num、callback){
if(num <0){
Alert( "プロセスに低レベル関数を呼び出す!");
Alert( "スコアはネガティブにすることはできません、入力エラー!");
} else if(num == 0){
Alert( "プロセスに低レベル関数を呼び出す!");
アラート(「学生は試験を受けていないかもしれません!」);
}それ以外{
Alert( "高レベルの関数処理を呼び出します!");
折り返し電話();
}
}
コードコピーは次のとおりです。
// 1.jsと同じディレクトリに次のtest.htmlファイルを保存します。
<
"http://www.w3.org/tr/html4/loose.dtd">
<html>
<head>
<メタhttp-equiv = "content-type" content = "text/html; charset = gb2312">
<スクリプトsrc = "1.js" type = "text/javascript"> </script>
<title> un unt ittitled document </title>
<script type = "text/javascript">
function test(){
var p = document.getElementById( "pp");
pp.innertext = "";
var num = document.getElementById( "score")。value;
f(num、function(){//匿名高レベル処理関数
if(num <60)alert( "failed!");
else if(num <= 90)alert( "The Generation is Experch!");
else alert(「この世代の優れた結果!」);
pp.innertext = "1978年以来QQ558064!"
}
</script>
</head>
<body>
<p>
コールバック関数の例:スコア<= 0の場合、基礎となるレイヤーで処理されます。
</p>
学生スコアを入力してください<input type = "text" id = "score">
<入力型= "button" onclick = "test()" value = "結果を見る">
<p id = "pp"> </p>
</body>
</html>
このファイルを実行すると、効果がわかります