gpt4 book ai didi

javascript - 从 setInterval 调用的方法,执行到一半停止

转载 作者:行者123 更新时间:2023-11-30 07:07:08 24 4
gpt4 key购买 nike

我的 draw() 函数在调用 this.circle() 后停止执行。如果我直接调用 draw() 方法,它会完美运行。但是,如果我使用 setInterval(this.draw, 1000),它似乎在调用 this.circle() 时正确返回。 circle() 也从不执行。我是否滥用了 setInterval?

function Ball() {
this.start = function() {
return setInterval(this.draw, 1000);
}
this.circle = function() {
console.log('1');
}
this.draw = function() {
console.log('2');

this.circle();
console.log('3');
}

this.circle() 永远不会被执行,并且 console.long('3')(或它之后的任何东西)永远不会被执行。

结果是 console.long('2') 每 1 秒重复打印一次

最佳答案

当您使用setInterval 时,this 将引用windowwindow 没有名为draw 的函数,因此它会抛出错误并停止执行。要修复它,您需要绑定(bind) this 的值。

return setInterval(this.draw.bind(this), 1000);

关于javascript - 从 setInterval 调用的方法,执行到一半停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54374604/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com