JavaScript : bind()

bindメソッド

var name = new Person('man');
setTimeout(name.sayMyName, 10);

  name.sayMyNameをsetTimeoutに渡した場合、渡されるのは関数オブジェクトだけで、

  nameオブジェクトとは切り離される。

  この場合、thisを解決できず、this.nameはundefinedと表示されてしまう。

  ここでbindメソッドを使う。bindメソッドを使うとthisを束縛する。

var name = new Person('man');
setTimeout(name.sayMyName.bind(name), 10);

  参照 http://thinkit.co.jp/free/article/0702/15/4/