JavaScript中的拷貝傳值和引用傳值
拷貝傳值和引用傳值
拷貝傳值:基本數(shù)據(jù)類(lèi)型都是“拷貝傳值”。
拷貝傳值,就是將一個(gè)變量的值“拷貝”一份,傳給了另一個(gè)變量。
拷貝傳值完之后,兩個(gè)變量之間沒(méi)有任何聯(lián)系,修改其中一個(gè)變量的值,另一個(gè)不會(huì)改變。
這兩個(gè)變量之間,是相互獨(dú)立的,沒(méi)有任何聯(lián)系。
<!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>
引用傳址:復(fù)合數(shù)據(jù)類(lèi)型都是“引用傳地址”
引用傳址:將一個(gè)變量的數(shù)據(jù)地址,“拷貝”一份,傳給另了另一個(gè)變量。這兩個(gè)變量,指向“同一個(gè)地址”。
大家共享同一份數(shù)據(jù)。
如果其中一個(gè)變量的值發(fā)生了改變,那么,另一個(gè)變量的值也得變。要變一起變。
因此,這兩個(gè)變量是有聯(lián)系的,要變大家一起變。
<!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>
?