关于事件绑定时指定this的问题,求助

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(){

        //    ...

    }

};


繁花不似锦
浏览 448回答 1
1回答

月关宝盒

讲真,第一种,很常见了,用多了也没啥。当然,如果喜欢第二种,可以考虑用bind的polyfill(即在没有bind的情况下利用call等方法来实现bind)。ps: es6的话,箭头函数就没有这种烦恼,但正如第二种的情况,只支持高版本现代浏览器。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript