jQueryコールバック関数
3859 ワード
1.引用
コールバック関数をパラメータとして使用すると、プログラムの柔軟性が大幅に向上します.コールバック関数についてよく知らないので、与えられたサンプルプログラムを研究して、コールバック関数について基本的な理解があると感じて、記録して、後で使うために準備します.
2.定義
コールバック関数は、関数ポインタによって呼び出される関数です.関数のししん(アドレス)をパラメータ伝達として別の関数に渡すと、このポインタが指向する関数を呼び出すために使用されると、コールバック関数と言います.コールバック関数は、その関数の実装者によって直接呼び出されるのではなく、特定のイベントや条件が発生したときに別の側によって呼び出されるので、コールバック関数内部のメソッドが実際に実行されます.
3.コード
JSコード
4.分析
このコードのデバッグ時に入る順序で,コールバック関数のメカニズムが理解できる.黄色の背景の4つのコードにブレークポイントを追加します.プログラムは以下の順序で実行されます.
39:39行目を先に走り、DOMロードが完了するとshadow()が実行され、39行を走っても直接40行は走りません.直接shadow()関数定義に移動した場所です.ここではcopyOffsetの関数ポインタを宣言しただけです.
2:この時点でopts内のコンテンツObject{copies=5,copyOffset=function()}を見るとcopyOffsetは単なるfunction()であることがわかります.
8:デフォルトパラメータのcopyOffsetを歩き始め、39行と同様にコールバック関数の内容には直接入らない.
19:ここまで来ると、CopyOffsetに対して要求を出してiをパラメータとして転送する必要があります.このときiはコールバック関数のパラメータindexである.
40:13行の「var options=$.Extend(defauflts,opts)”.optsのプロパティはdefaultのプロパティを上書きするので、9行のデフォルトのパラメータのコールバック関数の実行方法ではなく、40行目のコールバック関数の方法を実行します.
5.まとめ
上記の解析から,コールバック関数がパラメータで宣言される場合,依頼が宣言されただけであることがわかる.このパラメータを使用すると、コールバック関数の内容が本当に実行されます.
6.htmlコード付
コールバック関数をパラメータとして使用すると、プログラムの柔軟性が大幅に向上します.コールバック関数についてよく知らないので、与えられたサンプルプログラムを研究して、コールバック関数について基本的な理解があると感じて、記録して、後で使うために準備します.
2.定義
コールバック関数は、関数ポインタによって呼び出される関数です.関数のししん(アドレス)をパラメータ伝達として別の関数に渡すと、このポインタが指向する関数を呼び出すために使用されると、コールバック関数と言います.コールバック関数は、その関数の実装者によって直接呼び出されるのではなく、特定のイベントや条件が発生したときに別の側によって呼び出されるので、コールバック関数内部のメソッドが実際に実行されます.
3.コード
JSコード
1 (function($){
2 $.fn.shadow = function(opts){
3 //
4 var defaults = {
5 copies: 5,
6 opacity:0.1,
7 //
8 copyOffset:function(index){
9 return{x:index,y:index};
10 }
11 };
12 // opts default 。
13 var options = $.extend(defaults,opts);
14 return this.each(function(){
15 var $originalElement = $(this);
16 //
17 for(var i=0;i
4.分析
このコードのデバッグ時に入る順序で,コールバック関数のメカニズムが理解できる.黄色の背景の4つのコードにブレークポイントを追加します.プログラムは以下の順序で実行されます.
39:39行目を先に走り、DOMロードが完了するとshadow()が実行され、39行を走っても直接40行は走りません.直接shadow()関数定義に移動した場所です.ここではcopyOffsetの関数ポインタを宣言しただけです.
2:この時点でopts内のコンテンツObject{copies=5,copyOffset=function()}を見るとcopyOffsetは単なるfunction()であることがわかります.
8:デフォルトパラメータのcopyOffsetを歩き始め、39行と同様にコールバック関数の内容には直接入らない.
19:ここまで来ると、CopyOffsetに対して要求を出してiをパラメータとして転送する必要があります.このときiはコールバック関数のパラメータindexである.
40:13行の「var options=$.Extend(defauflts,opts)”.optsのプロパティはdefaultのプロパティを上書きするので、9行のデフォルトのパラメータのコールバック関数の実行方法ではなく、40行目のコールバック関数の方法を実行します.
5.まとめ
上記の解析から,コールバック関数がパラメータで宣言される場合,依頼が宣言されただけであることがわかる.このパラメータを使用すると、コールバック関数の内容が本当に実行されます.
6.htmlコード付
1
2
3
4
5
6 Developing Plugins
7
8
9
10
11
12
13
14
15
16
17 Inventory
18
19
20
21 Product
22 Quantity
23 Price
24
25
26
27
28 Total
29
30
31
32
33 Average
34
35
36
37
38
39
40 Spam
41 4
42 2.50
43
44
45 Egg
46 12
47 4.32
48
49
50 Gourmet Spam
51 14
52 7.89
53
54
55
56
57
58