可以将javascript变量的作用域限定为一个函数,并且该函数可以递归地调用它自己
Possible to scope a javascript variable to a function and that function's recursive calls to itself?
我的情况是,我有一个循环调用一个函数。函数一旦被调用,将对自身进行递归调用。
是否有一种方法可以将变量作用于函数和从第一次调用生成的递归调用链?
像这样:
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)
{
}
};
while(var i=0;i<100;i++)
{
myFunction(200);
}
function myFunction(someNumber)
{
someNumber -= 10;
if( someNumber > 0)
{
myFunction(someNumber);
}
}
是和否—您应该能够通过将变量的值作为myFunction
的参数传递来完成任务。第一次调用将需要设置起始值,然后将其传递给以后的调用进行修改。
while(var i=0;i<100;i++)
{
myFunction();
}
function myFunction(seed) {
if (seed == undefined)
{
seed = 200;
}
alert(seed);
var newSeed = seed - 50;
if (seed > 0)
{
myFunction(newSeed);
}
};
您需要一个闭包。好吧,你可能不想要它,但它会做你所要求的。
(function() {
var someNumber=200;
myFunction=function() {
someNumber-=10;
if (someNumber > 0) {
myFunction();
}
}
})();
我认为使用对象将是一种方式,如果你想做的事情,你实际上是范围变量
function myObject(_someNumber) {
var someNumber = _someNumber;
this.myFunction = function() {
this.someNumber -= 10;
if(this.someNumber > 0)
{
this.myFunction(this.someNumber);
}
}
}
for(var i=0;i<100;i++)
{
new myObject().myFunction(someNumber);
}
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 我可以在json对象中添加一个函数吗
- Javascript使函数一个接一个地执行
- 是JavaScript中的函数一个对象
- 两个几乎相等的jQuery函数;一个适用于IE,一个不适用于IE
- 两个Javascript函数一个window.onload=Custom.init;和一个window.onload=f
- 使javascript加载函数一个接一个地执行
- 如何通过两个嵌套的匿名函数(一个带有超时的事件处理程序)传递变量
- 为什么我不能让两个jQuery函数一个在另一个里面呢?
- 给函数一个变量名,而不是它的值
- 如何使用嵌入函数(一个滚动页由Pete - peachananr)
- 是否有可能给JavaScript函数一个类型/类?
- 确保两个函数一个接一个地执行,其中第一个函数内部有一个异步调用
- 两个不同的ajax函数一个接一个调用返回相同的值
- jQuery第一次更改函数一个工作
- 给这个函数一个id
- 如何给回调函数一个值一个变量在特定时刻
- 使用回调使两个函数一个接一个地运行
- 两个函数(一个用php)是否可以用“;onclick”;
- 两个几乎相同的函数.一个函数用Queue进行排队.Jquery效果在queued函数上不起作用.为什么