TypeScript回调函数this指向问题

最近在使用TypeScript开发frida hook时遇到一个问题,当把一个类的函数传给另一个方法作为回调函数时,this指针指向的不是原始类的示例,经过一番搜索发现有很多人也碰到同样的问题所以在此记录一下:
出问题的代码:

1
2
3
4
5
6
7
8
9
10
11
export class SetIntervalTest {
private someNumber: number = 1;

trigger() {
setInterval(this.setIntervalCallback, 400);
}

private setIntervalCallback() {
console.log(this.someNumber);
}
}

改成这样就可以了

1
2
3
private setIntervalCallback = () => {
console.log(this.someNumber);
};

因为只是为了临时解决业务问题所以暂不深究日后有空再来研究研究

相关链接:https://github.com/microsoft/TypeScript/issues/10285

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2015-2024 Kaisar
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信