我在ES6类中使用requestAnimationFrame,例如
class MyClass{...
run(){
requestAnimationFrame(this.animate);
//also tried requestAnimationFrame(() => this.animate);
}
animate(){
//how to get I back "this" here
}
我无法找回"这个"在requestAnimationFrame的回调中。知道怎么做吗?
答案 0 :(得分:6)
requestAnimationFrame(() => this.animate());
或
requestAnimationFrame(this.animate.bind(this));
在js的未来版本(目前为第3阶段)中,您可以:
class MyClass {
run(){
requestAnimationFrame(this.animate);
}
animate = () => {
//..
}
}
答案 1 :(得分:1)
Jonas W.的答案是要走的路。您还可以在构造函数中绑定方法,如下所示:
class MyClass {
constructor() {
super();
this.run = this.run.bind(this);
this.animate = this.animate.bind(this);
}
}