【发布时间】:2011-12-24 21:48:49
【问题描述】:
在javascript中使用setTimeout方法调用函数而不是直接调用它可以避免堆栈溢出吗?我对 setTimeout 的理解是它应该启动一个新的调用堆栈。当我查看 chrome 和 IE 的调用堆栈时,似乎 setTimeout 调用正在等待函数调用返回。
这只是调试器的一个属性还是我的理解有缺陷?
编辑
虽然下面提供的答案是正确的,但我遇到的实际问题与我调用 setTimeout(aFunction(), 10) 的事实有关,因为括号,它正在立即评估 aFunction。 This question 帮我解决了。
【问题讨论】:
-
在调用
setTimeout的函数返回之前,不能调用传入setTimeout的函数。所以是的,该函数确实启动了一个新的调用堆栈。
标签: javascript settimeout callstack