chrome超过最大调用堆栈大小,IE (JavaScript)超出堆栈空间

Maximum call stack size exceeded in chrome and Out of stack space in IE (JavaScript)

本文关键字:堆栈 JavaScript IE 空间 调用 chrome      更新时间:2023-09-26

我有一个这样的递归方法:

PrintRecursive = function (arr, level) {
    for (var key in arr) {
        var term = arr[key];
        htmlArr.push("<li><input type='"radio'" name='"tempName'" id='"" + term.Id + "'" data-taxonomy-url='"" + term.Url + "'" /><label for='"" + term.Id + "'">" + term.Title + "</label>");
        if (term.ChildTerms !== undefined && term.ChildTerms != null) {
            htmlArr.push("<ul>");
            PrintRecursive(term.ChildTerms, ++level);
            level--;
            htmlArr.push("</ul>");
            htmlArr.push("</li>");
        }
        else {
            htmlArr.push("</li>");
        }
    }
}

在IE中生成Out of stack space,在Chrome中生成Maximum call stack size exceeded,当它尝试执行htmlr .push时。Arr是数组的数组,但Arr中的项目总数为385个项目。我得到这个错误是因为我使用了被调用太多次的递归方法吗?还是因为htmlr包含了太多的数据(html)?

这意味着你的递归函数达到了浏览器的特定调用堆栈限制。

要修复它并了解更多信息,请查看以下帖子:最大调用栈大小超出错误