和C不同
javascript中如果要用递归的话,似乎是不会保护现场,变量在子函数中更改了之后,母函数中相应的变量也发生了变化,不知道有没有比较好的解决这个问题的办法。一段小程序说明这个问题<html>
<body>
<script type="text/javascript">
n=0;
test(10);
function test(h)
{
a=h;
if(n==1)
{
return 0;
}
n++;
alert("oringinal a is " + a);
test(5);
alert("final a is" + a);
}
</script>
</body>
</html>
javascript中如果要用递归的话,似乎是不会保护现场,变量在子函数中更改了之后,母函数中相应的变量也发生了变化,不知道有没有比较好的解决这个问题的办法。一段小程序说明这个问题<html>
<body>
<script type="text/javascript">
n=0;
test(10);
function test(h)
{
a=h;
if(n==1)
{
return 0;
}
n++;
alert("oringinal a is " + a);
test(5);
alert("final a is" + a);
}
</script>
</body>
</html>
<body>
<script type="text/javascript">
n=0;
test(10);
function test(h)
{
var a=h;
if(n==1)
{
return 0;
}
n++;
alert("oringinal a is " + a);
test(5);
alert("final a is" + a);
}
</script>
</body>
</html>