JavaScript中的拷贝传值和引用传值
拷贝传值和引用传值
拷贝传值:基本数据类型都是“拷贝传值”。
拷贝传值,就是将一个变量的值“拷贝”一份,传给了另一个变量。
拷贝传值完之后,两个变量之间没有任何联系,修改其中一个变量的值,另一个不会改变。
这两个变量之间,是相互独立的,没有任何联系。
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>php.cn</title>
<script>
var a=10;
var b=a;
a++;
document.write("a的值为:"+a+"<br/>");
document.write("b的值为:"+b);
</script>
</head>
<body>
</body>
</html>引用传址:复合数据类型都是“引用传地址”
引用传址:将一个变量的数据地址,“拷贝”一份,传给另了另一个变量。这两个变量,指向“同一个地址”。
大家共享同一份数据。
如果其中一个变量的值发生了改变,那么,另一个变量的值也得变。要变一起变。
因此,这两个变量是有联系的,要变大家一起变。
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>php.cn</title>
<script>
var arr1=[10,20,30,40];
var arr2=arr1;
arr1[1]=100;
document.write("arr1[1]的值为:"+arr1[1]+"<br/>");
document.write("arr2[1]的值为:"+arr2[1]);
</script>
</head>
<body>
</body>
</html>

非高非帅非富二代
这个例子说的不好,因为数组arr1给说arr2传的是地址值,因为数组名就是数组地址。这个例子没说明白。还有在C语言里int a=&b;是这样引用吧。
7年前 添加回复 4