javascript 函数调用
来源:百度知道 编辑:UC知道 时间:2024/05/16 10:12:06
<script type="text/javascript">
var m=1,n=m;
function aaa(sum,i)
{
sum=sum+i;
return sum;
}
var q=aaa(m,n)
document.write(q+"<p>")
document.write(m+"<p>")
document.write(n+"<p>")
</script>
m被调用到函数中去,sum=sum+i;后,为什么m不是等于2,而是等于1?
var m=1,n=m;
function aaa(sum,i)
{
sum=sum+i;
return sum;
}
var q=aaa(m,n)
document.write(q+"<p>")
document.write(m+"<p>")
document.write(n+"<p>")
</script>
m被调用到函数中去,sum=sum+i;后,为什么m不是等于2,而是等于1?
传给函数的只是它的值.并不是它的地址.
你应弄明白传值调用和传址调用.
var q=aaa(m,n)时 m=n=1
sum和i都是形参,从m,n获得数值.但不改变m,n。此时,m=1,n=1,i=1,sum=1
函数运行后,sum=sum+i=1+1=2 并将结果2返回给函数aaa() 此时q=2
函数中并没有对m,n的赋值语句 所以m,n仍保留原来的值m=1,n=1
aaa(sum,i) sum,i是形参从m,n接受数值而不是地址,m,n本身没有改变.