javascript赋值语句按值传递和按址传递的问题
<!DOCTYPE html> <html>
<head>
<script> //js引用类型按址传递 原始类型按值传递测试
var a=[1,2,3]; var b=a; var c={n:"ming",age:12} var d=c;
b.push(4); d.sex="male";
alert(a); // 1,2,3,4
alert(b); // 1,2,3,4
alert(c.sex); //male
alert(d.sex); // male
//说明js中,数组和对象(引用数据类型)的变量赋值给其他变量,是按址传递的。
var fn1=function(){alert("fn1")}; var fn2=fn1; fn2=function(){alert("fn2")};
fn1(); //fn1
fn2(); //fn2
var m=[1,{c:2,d:3},2]; var n=m[1]; n.e=4;
alert(n.e); //4
alert(m[1].e); //4
//数组或对象的元素为数组或对象时,把它赋值给其他变量还是按址传递的 </script> </head> <body></body> </html>