// 簡單的深拷貝
json
.parse
(json
.stringify
(data)
)// 遞迴的深拷貝
function
deepcopy
(data)
for(
let key in data)
return newdata
}
淺拷貝就是拷貝資料的第一層資料 但是如果資料內部還有複雜資料就只是引用 無法達到拷貝的效果
深拷貝 就是利用遞迴對資料的內部進行層層對應的拷貝 來完成 乙個與原資料完全剝離的新資料 this 指向自己的堆
示意圖:
所有物件都有__proto__屬性。
只有函式物件才有prototype屬性。
protoype物件預設有兩個屬性:constructor 和 proto。
例項物件的__proto__指向的是函式的protoype
函式物件的prototype屬性是外部共享的,而__proto__是隱式的。
函式和object的__proto__的頂端是null
深拷貝 淺拷貝 資料型別
1 不可變型別 包括數值 字串 元組 不可變指的是不能改變引用,只能放置乙個新的引用 2 可變型別 包括列表和字典 可變指的是當向列表或字典裡面增刪改時,引用沒有受到影響 進一步解釋可變與不可變,是指記憶體中的那塊內容 value 是否可以被改變。如果是不可變型別,在對物件本身操作的時候,必須在記憶...
JS資料型別 深淺拷貝
1.基本資料型別有number,string,boolean,null,undefined,symbol es6新增的 也稱原始資料型別。2.js有原始值型別和引用值型別,var str hello str 0 z 無法修改 3.js記憶體分為堆記憶體和棧記憶體,棧記憶體儲存的都是有固定大小 空間的...
論基本資料型別與引用資料型別以及深淺拷貝的區別
一 資料型別 js有兩種資料型別 2.棧 stack 與 堆 heap 的概念 3.這兩類資料型別的儲存方式 變a的同時b沒有發生改變,因此接下來分析一下產生這種變化的原因 當 b a 時,棧會新開闢乙個記憶體,如下 所以當你此時修改a 2,對b並不會造成影響,因為此時的b已自食其力,翅膀硬了,不受...