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

标签 javascript arrow-functions this

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

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);

但是不行,否则没有单独的赋值就没法写这个。然而,通常你只会 bind or use the arrow function当调用 requestAnimationFrame 时:

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

关于javascript - 使用箭头函数作为传递给 requestAnimationFrame 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45931008/

相关文章:

Javascript 自动屏幕尺寸测试

javascript - 是否可以使用 "return"语句从 JavaScript 立即调用的箭头函数中获取值?

c# - 使用 this[] 关键字从类实例中检索值

javascript - 'this' 是否引用调用此函数的元素?

javascript - 在javascript中以全屏模式制作一个div

javascript - React/Redux foreach 数据

javascript - 如何让div在2个高度之间出现和消失?

javascript - Angular2订阅了解箭头功能

javascript - 为什么我不能返回箭头函数?

Javascript OOP : binding method to event handler