JavaScript超出最大调用堆栈大小错误

我正在使用Direct Web Remoting(DWR)JavaScript库文件,并且仅在Safari(台式机和iPad)中出现错误

它说

超出最大呼叫堆栈大小。

该错误的确切含义是什么,它会完全停止处理吗?

也适用于Safari浏览器的所有修复程序(实际上在上iPad Safari

JS:执行超出超时

我假设是相同的调用堆栈问题)

回答:

这意味着在代码的某处,你正在调用一个函数,该函数又调用另一个函数,依此类推,直到达到调用堆栈限制。

这几乎总是因为没有满足基本情况的递归函数。

查看堆栈

考虑这段代码…

(function a() {

a();

})();

这是经过几次调用后的堆栈…

如你所见,调用堆栈会不断增长,直到达到极限:浏览器采用硬编码的堆栈大小或内存耗尽。

为了对其进行修复,请确保你的递归函数具有能够满足的基本情况。

(function a(x) {

// The following condition

// is the base case.

if ( ! x) {

return;

}

a(--x);

})(10);

以上是 JavaScript超出最大调用堆栈大小错误 的全部内容, 来源链接: utcz.com/qa/434739.html

回到顶部