gpt4 book ai didi

javascript - 使用 Javascript 类函数进行 15 次递归后堆栈溢出

转载 作者:行者123 更新时间:2023-11-28 11:42:36 26 4
gpt4 key购买 nike

我有以下代码示例来说明我的观点。当我在 Vista 上的 IE8 中加载此文件时,出现错误“Stack Overfow at line:16”

如果我使用顶级函数(在 testClass 对象之外)进行递归,我可以递归数百万次而不会出现堆栈溢出。

为什么会发生这种情况?最终我只是实现了一个 Function Que 而不是使用递归,但这对我来说没有意义,我想了解原因。

--代码--

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN">
<html>
<head>
<title>Recusion Test</title>
<body>
</body>

<script type="text/javascript">

function testClass() {
this.x = 15;
this.recurse = function() {
this.x--;
this.recurse();
}
}

var wtf = new testClass();
wtf.recurse();

alert('done');
</script>
</head>
</html>

最佳答案

递归语句没有终止条件,因此它将永远运行。

看来您想要...


function testClass() {
this.x = 15;
this.recurse = function() {
if (this.x--)
this.recurse();
}
}

var wtf = new testClass();
wtf.recurse();

alert('done');

关于javascript - 使用 Javascript 类函数进行 15 次递归后堆栈溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1539670/

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