jqueryの中のthis anchor.png

たとえばこんなスクリプトがあるとしますよね。

Everything is expanded.Everything is shortened.
1
2
3
4
5
6
7
8
9
-
|
-
-
|
!
!
!
 
js00 = {
    ary : [],
    start : function(){
        $.each([4,3,2,1,0],function(i){
            js00.ary.push(i);
        });
    }
};
js00.start();

ja00.ary に配列を落とし込んでいるだけです。自分のクセなのだけど、スクリプトを適当な名前のオブジェクト(この場合は「js00」)に包んで使ってます。ネームスペースのように使えて便利な気がするから。

で、上のスクリプトだけど、js00というオブジェクト名をjs01に変更したときにオブジェクト中にあるjs00という文字列も書き換えなければいけない。これじゃ再利用するときに不便でしょうがない。

だからこんな風に書き換えたくなるのですよ。

Everything is expanded.Everything is shortened.
1
2
3
4
5
6
7
8
9
-
|
-
-
|
!
!
!
 
js00 = {
    ary : [],
    start : function(){
        $.each([4,3,2,1,0],function(i){
            this.ary.push(i);
        });
    }
};
js00.start();

でもこれはNG。jqueryの中ではthisの参照先が違ってしまうから。大抵の場合thisにはdom要素が入る。今回のコードの場合は配列中の数値が入る。

なのでいくつか方法をためしてみたのだけど、こういうのに落ち着いた。

Everything is expanded.Everything is shortened.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
-
|
-
|
-
|
!
!
!
 
js00 = {
    ary : [],
    start : function(){
        that = this;
        $.each([4,3,2,1,0],function(i){
            that.ary.push(i);
        });
    }
};
js00.start();

トップ   凍結 差分 バックアップ 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 15, today: 1, yesterday: 0
最終更新: 2016-12-29 (木) 18:39:53 (JST) (269d) by admin

(c) 2017 xxxs500