摘要:深拷貝兩者之間改變互不影響拷貝后兩者之間不再存在共享關系拷貝之后數據類型不能發生改變,也就是需要判斷是數組的時候,需要進行多帶帶遞歸的遍歷在繼承的時候,我們通過原型屬性實現原型對象屬性的繼承,在進行深拷貝的時候,我們首先需要提出原型對象上的屬
深拷貝 兩者之間改變互不影響
1 拷貝后兩者之間不再存在共享關系
2 拷貝之后數據類型不能發生改變,也就是需要判斷是數組的時候,需要進行多帶帶遞歸的遍歷
3 在繼承的時候,我們通過原型屬性實現原型對象屬性的繼承,在進行深拷貝的時候,我們首先需要提出原型對象上的屬性;通過hasOwnProperty方法來進行篩選;
function deepCopy(params) { if(typeof params !== "object") { console.log("您輸入的不是對象"); 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; }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/96189.html
摘要:展開語法木易楊通過代碼可以看出實際效果和是一樣的。木易楊可以看出,改變之后的值并沒有發生變化,但改變之后,相應的的值也發生變化。深拷貝使用場景木易楊完全改變變量之后對沒有任何影響,這就是深拷貝的魔力。木易楊情況下,轉換結果不正確。 一、賦值(Copy) 賦值是將某一數值或對象賦給某個變量的過程,分為下面 2 部分 基本數據類型:賦值,賦值之后兩個變量互不影響 引用數據類型:賦址,兩個...
摘要:淺拷貝與深拷貝一數據類型數據分為基本數據類型,和對象數據類型。淺拷貝是按位拷貝對象,它會創建一個新對象,這個對象有著原始對象屬性值的一份精確拷貝。對于字符串數字及布爾值來說不是或者對象,會拷貝這些值到新的數組里。 淺拷貝與深拷貝 一、數據類型數據分為基本數據類型(String, Number, Boolean, Null, Undefined,Symbol)和對象數據類型。 基本數據類...
摘要:深拷貝和淺拷貝問題的本質還是不同數據類型的存儲方式差異,尤其是引用數據類型的特殊。 深拷貝和淺拷貝問題的本質還是不同數據類型的存儲方式差異,尤其是引用數據類型的特殊。showImg(https://segmentfault.com/img/bVbb8XH?w=1058&h=409); 現分別對賦值、淺拷貝、深拷貝做深入研究: 1.賦值 原理:直接將對象指針直接賦值給另一個變量 代碼: ...
閱讀 704·2021-11-22 13:54
閱讀 3065·2021-09-26 10:16
閱讀 3490·2021-09-08 09:35
閱讀 1576·2019-08-30 15:55
閱讀 3429·2019-08-30 15:54
閱讀 2076·2019-08-30 10:57
閱讀 497·2019-08-29 16:25
閱讀 877·2019-08-29 16:15