“这个”在功能中无法识别

时间:2017-09-24 06:49:32

标签: function typescript

我定义了一个属性但是当我尝试从setInterval匿名函数中访问它时,它没有被识别。

  this.game.seconds = 6;
  useTimer() {
    let timer = setInterval(
      function () {
        this.game.seconds--;//here the keyword this is not being recognized
      }, 1000
    );
  }

2 个答案:

答案 0 :(得分:1)

出现问题的原因是您不是使用箭头功能。

箭头函数从其外部执行上下文中获取this

ref提及:

  

箭头函数确实提供了自己的绑定(它仍然存在   封闭词汇上下文的这个值。)

No Binding of this中阅读更多内容。

仅此而已:

let timer = setInterval(
  () => {
    this.game.seconds--; // 'this' takes its value from the outer context
  }, 1000
);

答案 1 :(得分:0)

好吧,我可以用Dummy评论的箭头功能实现我的目标,并由gsamaras回答:

  this.game.seconds = 6;
  useTimer() {
    let timer = setInterval(
      () => {
        this.game.seconds--;
      }, 1000
    );
  }

更多信息here