ここには 2 つのオプションがあります。
1) 一時変数を使用してオブジェクトの参照を格納します。
do: function() {
var self = this;
$.getJSON('getcolour.php', function(resp) {
if (resp.colour == self.colour) { ... }
});
};
この方法を選択すると、「ローカルthis
」(getJSON ハンドラー コンテキスト オブジェクトとして) と「オブジェクトthis
」の両方をハンドラーで簡単に使用できます。ただし、もちろん、その一時変数を定義する必要があります。self
は、この目的で通常選択される最も一般的な名前の 1 つですが、実際には、他の変数の名前と重複しない限り、利用可能な任意の識別子にすることができます)。
2) これに適した関数を使用します: $.proxy
do: function() {
$.getJSON('getcolour.php', $.proxy(function(resp) {
if (resp.colour == this.colour) { ... }
}, this));
};
このアプローチでは、ハンドラーのコンテキスト オブジェクトが置き換えられました。現在は(関数this
を定義するオブジェクトとして) を指しています。do