普通变量按值传送
var m = 0;
function foo(m)
{
m++;
}
foo(m);
alert(m); // 0
数组对象按地址传送
var arr = [0];
function foo(arr)
{
arr[0]++;
}
foo(arr);
alert(arr[0]); // 1
其他对象也是按地址传送
var obj = {m:0};
function foo(obj)
{
obj.m++;
}
foo(obj);
alert(obj.m); // 1
实际上函数内的参数与调用函数时赋的参数,是两个不同的变量,只是他们指向同一个对象(当为对象时),所以操作这个就像操作到那个样,就像是按地址传送一样,详细请参见 JS 中没有按地址(引用)传递,只有按值传递。
相关阅读