我定义了一个属性但是当我尝试从setInterval匿名函数中访问它时,它没有被识别。
this.game.seconds = 6;
useTimer() {
let timer = setInterval(
function () {
this.game.seconds--;//here the keyword this is not being recognized
}, 1000
);
}
答案 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。