Javascript 控制;这";回调上的上下文

Javascript 控制;这";回调上的上下文,javascript,jquery,listener,this,Javascript,Jquery,Listener,This,我有一个这样的听众: this.frame.on('touchend', self.findClosestSlide); 我需要这样做,而不是在匿名函数中,以便以后能够使用函数名解除绑定 我的问题是,一旦我在findClosestSlide函数中,我的this对象逻辑上就变成了this.frame 如何访问原始的this,或者如何控制发送到回调函数的上下文?(不使用匿名函数)您可以将此存储在另一个变量中,例如that或$this,而不是在findClosestSlide函数中使用它。您可以将此

我有一个这样的听众:

this.frame.on('touchend', self.findClosestSlide);
我需要这样做,而不是在匿名函数中,以便以后能够使用函数名解除绑定

我的问题是,一旦我在
findClosestSlide
函数中,我的
this
对象逻辑上就变成了
this.frame


如何访问原始的
this
,或者如何控制发送到回调函数的上下文?(不使用匿名函数)

您可以将
存储在另一个变量中,例如
that
$this
,而不是在
findClosestSlide
函数中使用它。

您可以将
存储在另一个变量中,例如
that
$this
,而不是在
findClosestSlide
函数中使用它函数。

您可以使用function.bind()或$.proxy()将自定义上下文传递给回调函数,如

跨浏览器,使用

或者,使用

为什么??因为默认情况下,事件处理程序中的此将引用事件所针对的元素

您可以使用Function.bind()或$.proxy()将自定义上下文传递给回调,如

跨浏览器,使用

或者,使用


为什么??因为默认情况下,事件处理程序中的this将引用事件所针对的元素

this.frame.on('touchend',self.findClosestSlide.bind(this))
此.frame.on('touchend',self.findClosestSlide.bind(此))?我使用了阿伦的答案,但是+1,因为它可以工作。谢谢:)很高兴它有帮助!Happy coding bro:-)我使用了Arun的答案,但使用+1,因为它可以工作。谢谢:)很高兴它有帮助!快乐编码兄弟:-)
this.frame.on('touchend', $.proxy(self.findClosestSlide, self));
this.frame.on('touchend', self.findClosestSlide.bind(self));