js 深拷貝方法

2021-09-24 07:08:38 字數 1075 閱讀 5796

//object 方法

object.assign(target,source)// 將源拷貝到目標,切返回目標

es6 擴充套件運算子

//陣列方法:

slice ,concat,es6擴充套件運算子

複製**

json序列化

let obj  = }

let str = json.strify(obj)

json.parse(str);

複製**

json 存在幾個問題,沒法轉化 是date、function、regexp,不相信的同學可以試試,物件中有這幾個型別的值,拷貝不出來 2.深層遞迴

function deepclone (obj);

let ary = ;

if(typeof obj !== "object")

if(obj instanceof array)else

}return ary;

} else else

}return cloonobj;

}}複製**

上面** 只因為 判斷是陣列還是object,寫的很冗餘,精簡一下 得到 如下

function  deepclone (obj)

return t;

}複製**

驗證下:

let  obj  =  ,d:[1,2],e:new regexp(/\d+/),f:function

(),g:new date()}

let objcloone = deepclone(obj)

console.log(objcloone);

/*>>,

d: [ 1, 2 ],

e: /\d+/,

f: [function: f],

g: 2018-10-02t10:15:19.672z }

*/複製**

js物件深拷貝方法

json.stringify 是目前前端開發過程中最常用的深拷貝方式,原理是把有個物件序列化成為乙個 json 字串,將物件的內容轉換成字串的形式再儲存到磁碟上,再用json.parse 反序列化將 json 字串變成乙個新的物件 1 let obj1 56 let str json.stringi...

陣列深拷貝 js深拷貝的幾種方法

1.使用遞迴 使用遞迴的方式實現陣列 物件的深拷貝function deepclone obj 進行深拷貝的不能為空,並且是物件 if obj typeof obj object else return objclone 2.通過json物件 通過js的內建物件json來進行陣列物件的深拷貝func...

js 淺拷貝與深拷貝和方法

淺拷貝只複製指向某個物件的指標,而不複製物件本身,新舊物件還是共享同一塊記憶體。但深拷貝會另外創造乙個一模一樣的物件,新物件跟原物件不共享記憶體,修改新物件不會改到原物件。淺拷貝是建立乙個新物件,這個物件有著原始物件屬性值的乙份精確拷貝。如果屬性是基本型別 undefined,boolean,num...