我目前偶然发现了bind的问题,我认为这会降低我的性能。在每次递归时调用bind似乎都很糟糕。
我目前正在寻找一种处理这种情况的优雅而高效的方式:
在这种情况下,什么是理想的?
class AlotMonster {
constructor() {
this.names = ['a lot', 'alot'];
this.method();
}
method() {
let choice = Math.round(Math.random());
let currentName = this.names[choice];
console.log(currentName);
requestAnimationFrame(this.method.bind(this));
}
}
new AlotMonster();
答案 0 :(得分:1)
您可以改为使用箭头函数,它具有词法this
绑定。它看起来并不像您正在利用您的方法的原型性质,并希望它无论如何都要与特定实例相关:
class AlotMonster {
constructor() {
this.names = ['a lot', 'alot'];
this.method = () => {
let choice = Math.round(Math.random());
let currentName = this.names[choice];
console.log(currentName);
requestAnimationFrame(this.method);
};
this.method();
}
}
new AlotMonster();