脱jQuery $.proxy(fn,this)の代わりに fn.bind(this)

脱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になる。
    }

}


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です