JavaScript數組引用的操作


javascript

數組存儲對象都是存地址的,所以淺復制會導致 a 和 b 指向同一塊內存地址;

var a=[1,2]

var b=a

則b存儲的地址指向了數組[1,2],

如果直接對數組操作,push,pop等,則a,b都會發生變化,因為a和b都指向了堆中的這個數組

但是假如這樣操作,b=[3,4];這個時候發現a沒有變化還是[1,2];這是為什么,其實這個不同於剛才的操作,

因為b=[3,4],【】是JavaScript的語法糖,new Array();相當於給b重新開辟了堆空間,所以b的地址指向了新的堆地址,而a還是指向之前的地址,所以a和b變得沒有關系了

 

地址存儲在棧里面,但是數組內容存儲在堆里面,


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM