素材牛VIP会员
关于事件绑定时指定this的问题,求助
 qi***pu  分类:Html5  人气:1216  回帖:1  发布于6年前 收藏
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(){
        //    ...
    }
};

讨论这个帖子(1)垃圾回帖将一律封号处理……

Lv6 码匠
yj***23 站长 6年前#1

讲真,第一种,很常见了,用多了也没啥。

当然,如果喜欢第二种,可以考虑用bind的polyfill(即在没有bind的情况下利用call等方法来实现bind)。

ps: es6的话,箭头函数就没有这种烦恼,但正如第二种的情况,只支持高版本现代浏览器。

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取