bindAsEventListener

prototype.js より。

var obj = {
    hoo: function(e, x, y, z) {
        console.log(e, x, y, z);
    }
};

Event.observe(document, "click", obj.hoo.bind(obj, "OK", "FOO", "BAR");
//クリックすると "OK", "FOO", "BAR", event … event が最後になってしまった。
Event.observe(document, "click", obj.hoo.bindAsEventListener(obj, "OK", "FOO", "BAR");
//クリックすると event, "OK", "FOO", "BAR"

bind の第二引数以降は返ってきた関数の引数として使われる。
ただ普通の bind だとコールバック関数の第一引数が event オブジェクトに固定されておらず、 bind 時の引数が優先的に割り当てられ、 event オブジェクトは最後になってしまう。 bindAsEventListener なら最初に event オブジェクトが来る。