以下のように匿名関数の中にさらに匿名関数が入れ子になって入っている場合、どのようにthisをSelectViewのインスタンスに束縛することができるのでしょうか?
一つの匿名関数の中であれば、bind(this)を最後につけてあげるとうまくいくのですが、匿名関数が入れ子になるとどうもうまくいかなくなります。
thisを一旦、selfなどの変数に退避させる方法は知っているのですが、それ以外でどのように対応することができるのかを知りたいです!!
JavaScript
1function SelectView($items){ 2 3 var $items = $items; 4 this.delegate = {}; 5 //var self = this; 6 7 $items.forEach(function($item) { 8 9 $item.addEventListener("change", function(event){ 10 11 this.delegate.onSelectChange(event.target); 12 //self.delegate.onSelectChange(event.target); 13 14 }).bind(this); 15 16 }); 17 18} 19
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/05/11 12:20
2017/05/11 13:37
退会済みユーザー
2017/05/11 13:52
2017/05/11 13:54
2017/05/11 13:57
2017/05/11 16:55
2017/05/11 23:43