我定义了一个属性,但当我试图从setInterval匿名函数内部访问它时,它无法被识别。
this.game.seconds = 6;
useTimer() {
let timer = setInterval(
function () {
this.game.seconds--;//here the keyword this is not being recognized
}, 1000
);
}
我定义了一个属性,但当我试图从setInterval匿名函数内部访问它时,它无法被识别。
this.game.seconds = 6;
useTimer() {
let timer = setInterval(
function () {
this.game.seconds--;//here the keyword this is not being recognized
}, 1000
);
}
2条答案
按热度按时间moiiocjp1#
出现问题的原因是您没有使用箭头功能。
箭头函数从其外部执行上下文获取
this
。ref提到:
箭头函数提供了自己的this绑定(它仍然是封闭的词法上下文的this值)。
阅读更多关于
this
的无绑定。所以我只想说:
bgtovc5b2#
好吧,我可以用箭头函数来实现我的目标,正如Dummy评论的那样,gsamaras回答了我的问题:
更多信息在这里。