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>

posted @ 2013-02-28 09:17  stephenykk  阅读(261)  评论(0编辑  收藏  举报