您的位置:首页技术文章
文章详情页

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

【字号: 日期:2022-11-13 18:59:46浏览:30作者:猪猪

问题描述

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:

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

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

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

标签: JavaScript
相关文章: