在Javascript中,以下代码按预期工作:
$("#field").click(eventHandler);
function eventHander() {
invokeClassMethod();
// do other stuff
}
我在打字稿中尝试了这个,我收到一个错误,因为它出现了"这个"已经变成了不属于我班级的东西。
$("#field").click(this.eventHandler);
eventHandler() {
this.invokeClassMethod();
// do other stuff
}
给我一个错误,因为" invokeClassMethod"未定义。
我是打字稿的新手,所以有人可以告诉我错误是什么以及如何解决它?
答案 0 :(得分:3)
好的答案很简单,实际上归结为我对Javascript功能不熟悉......这就是我如何使用它:
$("#field").click(() => this.eventHandler());
使用bind()也可以:
$("#field").click(this.eventHandler.bind(this));
和jQuery代理工作:
$("#field").click($.proxy(this.eventHandler, this));