Heim > Fragen und Antworten > Hauptteil
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(){
// ...
}
};
学习ing2017-06-22 11:55:57
讲真,第一种,很常见了,用多了也没啥。
当然,如果喜欢第二种,可以考虑用bind的polyfill(即在没有bind的情况下利用call等方法来实现bind)。
ps: es6的话,箭头函数就没有这种烦恼,但正如第二种的情况,只支持高版本现代浏览器。