脱jQuery $.proxy(fn,this)の代わりに fn.bind(this)
jQueryのときは、Class内部のメソッド呼び出し時に$.proxy()をつかってましたが、bind()が楽。
class Foo {
constructor(){
$('#btn1').on('click',this.onClick1);
$('#btn2').on('click',$.proxy(this.onClick2,this);
$('#btn3').on('click',this.onClick3.bind(this));
}
onClick1(e){
console.log(this); //thisのスコープが #btn1のElementになる。
}
onClick2(e){
console.log(this); //thisのスコープがclass Fooになる。
}
onClick3(e){
console.log(this); //thisのスコープがclass Fooになる。
}
}
コメントを残す