Translate Into English Coffee & Tea
javascript 按值传递与按地址传递
<input type="button" value="ChangeInt" onclick="javascript:ChangeInt();"/>
<input type="button" value="ChangeObj" onclick="javascript:ChangeObj();"/>
<script type="text/javascript">
<!--
var m = [0];
var obj = { m:0 };
 
function ChangeInt()
{
    var m1 = m[0];
    m1++;
    alert("m[0]=" + m[0] + "\r\n" + "m1=" + m1);
}
 
function ChangeObj()
{
    var obj1 = obj;
    obj1.m++;
    alert("obj.m=" + obj.m + "\r\n" + "obj1.m=" + obj1.m);
}
-->
</script>

我们测试会发现,每次点击第一个按钮时,m、m1 的值都是不变的;而每次点击第二个按钮时,obj.m 和 obj1.m 都是递增的。

原来

  • 数字、字符串等是按值传递的。
  • 数组、对象等是按地址传递的。本文中 m1 只是用到 m 的一个元素,不能算作数组赋值。

相关阅读

文章评论
标题:必填
内容:
文章信息