bindは他のオブジェクトが保持している状態を使用することができるメソッドです。
bindメソッドを調べてみると「thisの束縛」という風に表現されています。
以下、サンプルコードです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
//グローバルの値 this.val=1111; var module={ val:9999, output:function(){ console.log(this.val); } }; //moduleオブジェクトが保持している値 module.output(); // 9999 //output関数を別の変数に入れ、使用します var tmp = module.output; tmp(); // 1111 thisが指す対象が変わるので、グローバルの値を表示しています //bindでmoduleオブジェクトの保持している値を使用します var bind_obj = tmp.bind(module); bind_obj(); //9999 |
bindメソッドでmoduleオブジェクトが保持している「val=9999」を使用できていることがわかります。
このようにbindメソッドは、変更されてはいけない値を持つオブジェクトのプロパティを使用するのに適しています。