使用箭头函数作为传递给 requestAnimationFrame 的方法

Use arrow function as method passed to requestAnimationFrame

我有一个对象,其方法将传递给 requestAnimationFrame。 目前我创建对象而不是用箭头函数重新分配方法 returns.

var player={fn:function(){return ()=>{game.circle(this.x,this.y,this.radius)}},
x:200,y:300,radius:20};
player.fn=player.fn();

是否可以在创建对象后不重新分配方法的情况下完成此操作?

你可以 use a static reference to player instead:

const player = {
  fn() {
    game.circle(player.x, player.y, player.radius);
  },
  x:200,
  y:300,
  radius:20
};
requestAnimationFrame(player.fn);

但是不行,否则没有单独的赋值是没法写的。然而,通常您在调用 requestAnimationFrame:

时只会 bind or use the arrow function
var player = {
  fn() {
    game.circle(this.x, this.y, this.radius);
  },
  x:200,
  y:300,
  radius:20
};
requestAnimationFrame(() => player.fn());