我遇到了window.setInterval()方法的问题。下面是一个结构的例子,方法"重复"被重复调用,但是我不能在里面调用任何方法"重复"。在我实例化管理器(让m = new manager())的示例中,它将打印" Before Print",但不会从printStuff方法打印出日志,或者" After Print&# 34;消息。
有谁知道为什么会这样?显然这不是我的实际代码,因为它很简单,不能在单独的函数中,但是我的实际代码需要在" repeat"中调用许多函数。函数,它会在找到另一个函数的调用时停止执行。
class manager{
constructor(){
window.setInterval(this.repeat, 5000);
}
repeat(){
console.log("Before Print");
this.printStuff();
console.log("After Print");
}
printStuff(){
console.log("Print Stuff");
}
答案 0 :(得分:9)
设置间隔将需要将this.repeat从您需要显式“绑定”方法的上下文中取出
setInterval(this.repeat.bind(this), 5000)
或
setInterval(()=>this.repeat(), 5000)