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));