如何将`this`上下文传递给事件处理程序?
- 论坛
- 如何将`this`上下文传递给事件处理程序?
10 浏览
如何将`this`上下文传递给事件处理程序?
我知道这个问题并没有太多意义,但让我试着澄清一下。
我有一个名为ScrollBanner
的类,大致如下(为了简洁省略了很多内容):
function ScrollBanner() { this.initialize = function(selector) { $('span#banner1-nav').click(this._onClickNavigation); } this._onClickNavigation = function(event) { this.restartTimer(); // this == span#banner1-nav元素 //... } this.restartTimer() { //... } }
如您所见,this.initialize
将点击处理程序设置为this._onClickNavigation
。有些人可能希望事件处理程序内的this
指向ScrollBanner
实例,但遗憾的是它并不是这样。它指向触发点击事件的元素,即span#banner1-nav
。
如何使this
指向ScrollBanner
类实例的最佳方法是什么?