js進行物件深度拷貝deep clone

2021-10-24 18:00:56 字數 432 閱讀 5664

推薦——操作新穎,逆向思維

(①轉成json字串;②在將字串轉為物件)

obj1 = }; 

let obj3 = json.parse(json.stringify(obj1));

obj1.a = 4;

obj1.b.c = 4;

log(json.stringify(obj3));

// }

慎用lodash的clonedeep函式(文中還是推薦方法一)

import  from 'lodash';

//拷貝物件,防止引用

this.allocateinfo = clonedeep(allocate);

(漏洞:物件嵌物件,可能還是存在引用);

引申:object.assign()

js物件深度拷貝

js中物件是引用資料型別,如果我們只是簡單的把物件a通過等號複製給物件b,那麼物件a b指向的還是同乙個位址,這是改變a,b也會跟著改變。var a var b a b.a 2 console.log a.a 2這並不是我們想要看到的,一般我們想要的拷貝乙個物件就是想要相互不影響兩個物件。也就是深度...

js深度物件合併,深度賦值 拷貝

平時我們在處理純粹物件 鍵值對物件 json 時,如果使用object.assign或者物件解構賦值,只會合併第一層的資料,而當合併巢狀物件,將會直接覆蓋掉前面被合併物件裡的資料,這是因為object.assign和物件解構賦值都是只有第一層屬於深拷貝,而往下都是淺拷貝,例如 var obj1 va...

js實現深度拷貝

js實現拷貝,使用普通賦值物件,在操作其中乙個物件值的時候,另乙個也會更改,不符合需求 因此引入深度拷貝,以下為實現深度拷貝的幾種法 合併多個物件 var target var source1 var source2 object.assign target,source1,source2 注意 這...