摘要:深拷貝兩者之間改變互不影響拷貝后兩者之間不再存在共享關(guān)系拷貝之后數(shù)據(jù)類型不能發(fā)生改變,也就是需要判斷是數(shù)組的時(shí)候,需要進(jìn)行多帶帶遞歸的遍歷在繼承的時(shí)候,我們通過(guò)原型屬性實(shí)現(xiàn)原型對(duì)象屬性的繼承,在進(jìn)行深拷貝的時(shí)候,我們首先需要提出原型對(duì)象上的屬
深拷貝 兩者之間改變互不影響
1 拷貝后兩者之間不再存在共享關(guān)系
2 拷貝之后數(shù)據(jù)類型不能發(fā)生改變,也就是需要判斷是數(shù)組的時(shí)候,需要進(jìn)行多帶帶遞歸的遍歷
3 在繼承的時(shí)候,我們通過(guò)原型屬性實(shí)現(xiàn)原型對(duì)象屬性的繼承,在進(jìn)行深拷貝的時(shí)候,我們首先需要提出原型對(duì)象上的屬性;通過(guò)hasOwnProperty方法來(lái)進(jìn)行篩選;
function deepCopy(params) { if(typeof params !== "object") { console.log("您輸入的不是對(duì)象"); return params; } let target = null; if(typeof params === "object" && params !== null) { target = Array.isArray(params) ? [] : {} for (let key in params) { if(params.hasOwnProperty(key)) { if(typeof params[key] === "object") { target[key] = deepCopy(params[key]); } else { target[key] = params[key]; } } } } return target; }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/96189.html
摘要:展開(kāi)語(yǔ)法木易楊通過(guò)代碼可以看出實(shí)際效果和是一樣的。木易楊可以看出,改變之后的值并沒(méi)有發(fā)生變化,但改變之后,相應(yīng)的的值也發(fā)生變化。深拷貝使用場(chǎng)景木易楊完全改變變量之后對(duì)沒(méi)有任何影響,這就是深拷貝的魔力。木易楊情況下,轉(zhuǎn)換結(jié)果不正確。 一、賦值(Copy) 賦值是將某一數(shù)值或?qū)ο筚x給某個(gè)變量的過(guò)程,分為下面 2 部分 基本數(shù)據(jù)類型:賦值,賦值之后兩個(gè)變量互不影響 引用數(shù)據(jù)類型:賦址,兩個(gè)...
摘要:淺拷貝與深拷貝一數(shù)據(jù)類型數(shù)據(jù)分為基本數(shù)據(jù)類型,和對(duì)象數(shù)據(jù)類型。淺拷貝是按位拷貝對(duì)象,它會(huì)創(chuàng)建一個(gè)新對(duì)象,這個(gè)對(duì)象有著原始對(duì)象屬性值的一份精確拷貝。對(duì)于字符串?dāng)?shù)字及布爾值來(lái)說(shuō)不是或者對(duì)象,會(huì)拷貝這些值到新的數(shù)組里。 淺拷貝與深拷貝 一、數(shù)據(jù)類型數(shù)據(jù)分為基本數(shù)據(jù)類型(String, Number, Boolean, Null, Undefined,Symbol)和對(duì)象數(shù)據(jù)類型。 基本數(shù)據(jù)類...
摘要:二淺拷貝與深拷貝深拷貝和淺拷貝是只針對(duì)和這樣的引用數(shù)據(jù)類型的。淺拷貝是按位拷貝對(duì)象,它會(huì)創(chuàng)建一個(gè)新對(duì)象,這個(gè)對(duì)象有著原始對(duì)象屬性值的一份精確拷貝。對(duì)于字符串?dāng)?shù)字及布爾值來(lái)說(shuō)不是或者對(duì)象,會(huì)拷貝這些值到新的數(shù)組里。 一、數(shù)據(jù)類型 數(shù)據(jù)分為基本數(shù)據(jù)類型(String, Number, Boolean, Null, Undefined,Symbol)和對(duì)象數(shù)據(jù)類型。 基本數(shù)據(jù)類型的特點(diǎn):直...
摘要:二淺拷貝與深拷貝深拷貝和淺拷貝是只針對(duì)和這樣的引用數(shù)據(jù)類型的。淺拷貝是按位拷貝對(duì)象,它會(huì)創(chuàng)建一個(gè)新對(duì)象,這個(gè)對(duì)象有著原始對(duì)象屬性值的一份精確拷貝。對(duì)于字符串?dāng)?shù)字及布爾值來(lái)說(shuō)不是或者對(duì)象,會(huì)拷貝這些值到新的數(shù)組里。 一、數(shù)據(jù)類型 數(shù)據(jù)分為基本數(shù)據(jù)類型(String, Number, Boolean, Null, Undefined,Symbol)和對(duì)象數(shù)據(jù)類型。 基本數(shù)據(jù)類型的特點(diǎn):直...
摘要:深拷貝和淺拷貝問(wèn)題的本質(zhì)還是不同數(shù)據(jù)類型的存儲(chǔ)方式差異,尤其是引用數(shù)據(jù)類型的特殊。 深拷貝和淺拷貝問(wèn)題的本質(zhì)還是不同數(shù)據(jù)類型的存儲(chǔ)方式差異,尤其是引用數(shù)據(jù)類型的特殊。showImg(https://segmentfault.com/img/bVbb8XH?w=1058&h=409); 現(xiàn)分別對(duì)賦值、淺拷貝、深拷貝做深入研究: 1.賦值 原理:直接將對(duì)象指針直接賦值給另一個(gè)變量 代碼: ...
閱讀 719·2021-11-22 13:54
閱讀 3081·2021-09-26 10:16
閱讀 3510·2021-09-08 09:35
閱讀 1590·2019-08-30 15:55
閱讀 3438·2019-08-30 15:54
閱讀 2085·2019-08-30 10:57
閱讀 503·2019-08-29 16:25
閱讀 884·2019-08-29 16:15