<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>
<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 的一个元素,不能算作数组赋值。
相关阅读
