thisの束縛

JavaScriptの関数内で使えるthisですが、基本的には、その関数を呼び出したobjectが返ります。
つまり、同じ関数であっても、呼び出す箇所によって、thisがコロコロ変わる可能性がある訳ですね。
例えば、他のオブジェクト指向言語における、メソッド呼び出しの際のthisなりselfなりでは、
自分が所属するクラスなりインスタンスとなる。
場合によっては、それと同じように、thisを固定したい時もあったりする。
最近、この実現方法で、しばらく煮詰まっていたのだけれど、
さすが変態言語であるところのJavaScriptである。(笑)
ちゃんと、そういう手段が用意されていた。
「bindを使え!!」
任意の関数funcのbind関数にthisとして与えたいobjectを指定すればOK。
var newFunc = func.bind(object);
これで、newFuncを呼び出せば、期待した動きとなる。