JavaScript中的拷貝傳值與引用傳值
拷貝傳值與引用傳值
#拷貝傳值:基本資料型別都是「拷貝傳值」。
拷貝傳值,就是將一個(gè)變數(shù)的值「拷貝」一份,傳給了另一個(gè)變數(shù)。
拷貝傳值完畢後,兩個(gè)變數(shù)之間沒有任何聯(lián)系,修改其中一個(gè)變數(shù)的值,另一個(gè)不會(huì)改變。
這兩個(gè)變數(shù)之間,是相互獨(dú)立的,沒有任何關(guān)聯(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>
引用傳址:複合資料型別都是「引用傳遞位址」
#引用傳址:將一個(gè)變數(shù)的資料位址,「拷貝」一份,傳給另了另一個(gè)變數(shù)。這兩個(gè)變量,指向「同一個(gè)位址」。
大家共享同一份資料。
因此,這兩個(gè)變數(shù)是有連結(jié)的,要變大家一起變。
<!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>###?######################