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 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本身没有改变.