我在 JS 中有一个临时事件系统,附件如下所示:
events.attach(events.NEW_TASK,this.update);
其中 this.update
是回调/处理程序/函数。问题是,当调度程序尝试调用此处理程序时,它会丢失原始上下文。如何将处理程序与调用附加函数的对象的上下文绑定(bind)在一起,而不将 this
作为参数传递并使用它?
编辑:我还应该提到,它在某种程度上是一个框架,因此对于其他开发人员来说必须简单,因此最好不需要将上下文存储在另一个变量中。
最佳答案
另一个选项,使用 Function.prototype.bind
方法,新的一部分ECMAScript Standard :
events.attach(events.NEW_TASK, this.update.bind(this));
关于javascript - 引用Javascript中的对象调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2902385/