我有以下代码:
context
.on( 'hangup', this.handleHangup );
在类构造函数和
中PlayMessage.prototype.handleHangup = function() {
log.callout.info( "Call [%s]: Client hungup.", this.row.get( 'id' ) );
this.endCall(); // Get out of here
}
作为班级的一项功能。该类称为PlayMessage。
我收到错误说:
events.js:130 抛出TypeError('listener必须是函数');
谈论我粘贴在上面的context.on(...)行。
我应该如何将类函数用作侦听器?
答案 0 :(得分:1)
一般来说,在将函数传递给依赖于绑定上下文(this
)的事件处理程序(如原型方法)时,必须在传递之前手动绑定上下文。
context
.on( 'hangup', this.handleHangup.bind(this) );
这可确保this
中的handleHangup
值是"类"的实例。你期待。
答案 1 :(得分:0)
问题在于我试图声明一个没有“new”的类,所以没有原型函数存在。这对我来说是一次了不起的学习经历。