我所处的情况是我有一个正在调用函数的循环。该函数一旦被调用就会递归调用自身。
有没有办法可以将变量的范围限定为函数以及第一次调用生成的递归调用链?
类似这样的事情:
for(var i=0;i<100;i++)
{
myFunction();
}
function myFunction()
{
var someNumber = 200;
someNumber -= 10;
if( someNumber > 0)
{
myFunction();
}
}
第一次调用 someNumber 的第二次迭代将是 190 而不是 200。这可以实现吗?
如果这里有任何令人困惑的地方,请告诉我。
最佳答案
是的,使用内部函数来执行递归:
for (var i = 0; i < 100; i++)
{
myFunction();
}
function myFunction()
{
var someNumber = 200;
(function innerFunction()
{
someNumber -= 10;
if( someNumber > 0)
{
innerFunction();
}
})();
};
请注意,您有语法错误。您的 while
需要是 for
。
编辑:也许您的实际代码有所不同并需要递归函数,但仅使用循环您的示例会简单得多:
function myFunction()
{
for (var someNumber = 200; someNumber > 0; someNumber -= 10)
{
}
};
关于javascript - 是否可以将 JavaScript 变量的范围限定为函数以及该函数对其自身的递归调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7560973/