使用setTimeout方法调用函数而不是直接调用,能否在 JavaScript 中避免堆栈溢出?我理解 setTimeout 应该会启动一个新的调用堆栈。但是当我查看 Chrome 和 IE 的调用堆栈时,似乎 setTimeout 调用正在等待函数调用返回。
这是否只是调试器的属性,还是我的理解有误?
编辑
尽管下面提供的答案是正确的,但我实际遇到的问题与我调用setTimeout(aFunction(), 10)有关,因为由于括号的原因,aFunction 立即被评估。这个问题已经在此问题中得到解决。
这是否只是调试器的属性,还是我的理解有误?
编辑
尽管下面提供的答案是正确的,但我实际遇到的问题与我调用setTimeout(aFunction(), 10)有关,因为由于括号的原因,aFunction 立即被评估。这个问题已经在此问题中得到解决。
setTimeout
的函数在调用setTimeout
的函数返回之前不能被调用。因此,是的,该函数会启动一个新的调用堆栈。 - Šime Vidas