javascript - Berkenaan masalah menentukan ini semasa mengikat acara, sila bantu
阿神
阿神 2017-06-22 11:53:57
0
1
823
function Tab($selector){
    var _this = this;
    
    //    这种可以保证this正确,但是这样写很累赘
    $selector.on("click", function(){
        _this.switchIndex();
    }); 
       
    //    不兼容ie某些浏览器
    $selector.on("click", this.switchIndex.bind(this));
    
    //    这种方式绑定会导致switchIndex内部的this为$selector,除了上面那些,
    //    还有其他比较自然的方式吗?
    $selector.on("click", this.switchIndex);
}
Tab.prototype = {
    switchIndex: function(){
        //    ...
    }
};
阿神
阿神

闭关修行中......

membalas semua(1)
学习ing

Sejujurnya, jenis pertama adalah sangat biasa, dan tidak kira jika anda menggunakannya terlalu banyak.

Sudah tentu, jika anda suka pilihan kedua, anda boleh mempertimbangkan untuk menggunakan polyfill bind (iaitu, menggunakan panggilan dan kaedah lain untuk melaksanakan bind apabila tiada bind).

ps: Dalam es6, fungsi anak panah tidak mengalami masalah ini, tetapi sama seperti kes kedua, ia hanya menyokong versi penyemak imbas moden yang lebih tinggi.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan