prototype.jsのイベント処理
var obj = new TheClass(); var btn = new Element('button'); btn.innerHTML = '押してね♪' btn.observe('click',function(){ // objへthisでアクセス可能な関数が記述できる }.bind(obj))
bind(obj)と、最後に書くだけでイベントハンドラ内のthis変数を通してobjにアクセスできるようになる。
普通は
btn.observe('click',obj.method.bindAsEventListener(this))
bindとbindAsEventListenerとの違いは、イベントハンドラ内でイベントオブジェクトを弄るかどうか。
まぁ、後者を使っておけばとくに問題ないよ。
最近のお気にいりは、引数を関数内に束縛する方法
btn.observe('click',(function(i){ return function(){alert(i++)} })(0))