为什么过多的递归

时间:2011-10-25 09:38:12

标签: javascript

我试图理解为什么在这种情况下会有太多的递归。我没有使用任何循环。

function a(param1, param2) {

    function b(input1) {
        return input1 * 2;
    };

    function c(input2) {
        return input2 * 2;
    };    

    return a(param1) + b(param2);
};

document.write(a(1, 2));

3 个答案:

答案 0 :(得分:5)

a return语句中,a语句再次调用return b(param1)+c(param2); ,因此会无限地执行此操作。你可能意味着:

{{1}}

答案 1 :(得分:2)

函数a不断调用自身。你的意思是调用函数c吗?

答案 2 :(得分:0)

你在打电话给内线。这将继续使用函数调用堆栈堆栈。 您没有为调用指定任何终止条件,因此递归将持续到内存不足。