jQueryのproxyメソッドを使ってみる

オブジェクトに指定したプロパティがなくてもちゃんとを呼んでくれる。

var obj = {
  txt:'クリック!',
  dofunc:function(){
      alert(this.txt);
  }
};

obj.dofunc();//クリック!
$('#test').click(obj.dofunc);//undefined

↑ではclickイベント時のthisが#testになっているので指定したプロパティがなく、
undefinedが返ってくる。
ほんとはobjのtxtを指して欲しいのに!ムキー!!という場面。
このようなthis違いをなんとかするのに$.proxy()を使う。

$('#test').click($.proxy(obj.dofunc,obj));//クリック!

と書くことができる。
書き方は以下の2通り。

$.proxy(関数名,対象オブジェクト);
$.proxy(対象オブジェクト,プロパティ名);

2つめの方が分かりやすい気がするなー。