まず、「コールバック」を直訳すると、関数が呼び出される仕組みであることがわかります。
名詞に出会ったら、まずBaiduやGoogleで検索してみるとよいでしょう。公式の説明はどうなっていますか
以下はウィキペディアからのコールバックの定義です:
コールバックは、都合の良いときに引数をコールバック(実行)することが期待される他のコードに引数として渡される実行可能コードの一部です時間
厳密な翻訳: コールバック関数が別の関数への引数として使用されます 実行可能コード セグメント このコード セグメントは都合の良い時間に実行されます
一般的な説明: 関数 f2 を関数 f1 にパラメーターとして渡し、関数 f2 を実行します。 f1 での適切な時間 (f1、f2 を意味する以下のすべての例を使用します)
したがって、このようなコールバック関数パターンを取得できます
function f1(f2) { //f1要执行的一些代码 if (f2 && typeof(f2) === "function") { //对f2做判断是否存在并且是一个函数 f2(); } }
ここで、2 つのパラメーターの f2 は関数 f2 へのポインターであることに注意してください。そのため、f2 の後に括弧を追加することはできません
そして、f1 の中に f2 を追加する必要があります。この時点で f2 を呼び出して実行する必要があるため、その後に括弧が必要です。そのため、f2() を記述する必要があります
このモードをインスタンス化して、実行結果を確認しましょう
声明函数function f1(f2) { alert("我是f1");if (f2 && typeof(f2) === "function") { //写上判断是个好习惯f2() } } 执行 f1(function() { alert("我是f2"); }) 结果://"我是f1",“我是f2”
関数の実行プロセス全体を見てみましょう。 f1(function( ){alert("I am f2");}) を呼び出すとき、
は最初に匿名関数を f1() に渡します。宣言された関数のパラメータ f2 を上から順に実行し、次に f2(); を実行します
コールバックの定義を見てみるとf1 自体の実行フローに影響を与えることなく、実行したいときにコールバックを実行させることができます
しかし、カプセル化と美しさのために、ほとんどの人はこのように書きます
function f1(f2) { alert("我是f1"); if (f2 && typeof(f2) === "function") { f2() } alert("我又是f1 哈哈"); } 执行 f1(function(){ alert("我是f2"); })//结果:我是f1 ,我是f2,我又是1 哈哈
実際、コールバックはfunction はそれほど複雑ではありません。js では、function は通常のパラメータとして扱うことができます。後ろに()が付いている限り、この関数を呼び出すことを意味します。
下の例を見てください
function f1(f2){ if (f2 && typeof(f2) === "function") { settimeOut(function(){f2()},1000) ;//f1执行1s后f2执行} }function f2(){/**/} f1(f2);
実際、関数が定義されるたびに、関数がコンテナのスタックに追加され、インデックスが関数名であることも上記の例からわかります。デフォルトは window の下にあるため、そこに文字列をスローできます。また、window の下の文字列を介してこのコールバック関数を呼び出すこともできます。
パラメータがある場合は、上記の方法を使用できます。
例えば、jQueryでの例
$(function(){ function funcname(param){ //do something //callback param.callback(); } //调用 funcname({ callback:function(){ alert('callback do'); } }); });
#divを素早く非表示にし、徐々に#div2を表示します。 jQueryには多数のコールバック関数があります
そして、コールバックを管理する専用のメソッドがあります
$("#div1").fadeOut("fast",functin(){ $("#div2").fadeIn("slow"); })
最後に、プロジェクトで最近使用したコールバックを見てみましょう
ハイブリッド アプリの機能は、おそらく ios にリクエストを送信し、ios が json データを返し、返されたデータを解析して に挿入することです。ウェブページ
rree以上がjQueryでコールバック関数をカスタマイズする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。