gpt4 book ai didi

javascript - JS中构造函数 "creates"无限循环

转载 作者:行者123 更新时间:2023-11-28 12:15:52 25 4
gpt4 key购买 nike

我注意到构造函数中有一些奇怪的行为。这段代码无限循环,我不知道为什么。

function thing(){
this.start=function (){console.log(this.msg)};
this.msg="Starting...";
setInterval(() => {this.start()},1000)
}
<button onclick="new thing()">Create a new thing!</button>

我对此进行了搜索,但没有找到任何可以解释这一点的内容。请有人帮助我并回答为什么会发生这种情况。

谢谢。

最佳答案

您确定要使用 setInterval 而不是 setTimeout 吗?前者每1秒调用一次this.start,而后者1秒后调用一次,请查看下面解释这两个功能的链接:

  1. 设置时间间隔 https://developer.mozilla.org/pl/docs/Web/API/Window/setInterval

  2. setTimeout https://developer.mozilla.org/pl/docs/Web/API/Window/setTimeout

正确的代码片段应该是:

function thing(){
this.start=function (){console.log(this.msg)};
this.msg="Starting...";
setTimeout(this.start(), 1000)
}
<button onclick="new thing()">Create a new thing!</button>

关于javascript - JS中构造函数 "creates"无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49650481/

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