bindとは何なのか?
fun.bind(arg);
bind() メソッドは、呼び出された時に新しい関数を生成します。最初の引数 thisArg は新しい関数の this キーワードにセットされます。2 個目以降の引数は、新しい関数より前に、ターゲット関数の引数として与えられます。
らしい。 ようはthisを設定できるというわけか。 bindしないとthisの参照が期待しない参照をする。
bindの処理が気になったのは下のようなコードが出てきたからだ。
this.arr.each(function(a){ b.hoge(this.c); }.bind(this));
このコードのbindを外すと(thisを束縛しないと)thisの参照がWindowになった。 なるほど、thisは呼び出し元によって変わってしまうのでそれを固定するためにbindを使うと。
jsのthisいっぱいあって難しい。