用遞迴實現深拷貝
阿新 • • 發佈:2021-01-14
技術標籤:javascript
深拷貝是指,拷貝物件的具體內容,兩個記憶體地址是自主分配的,拷貝結束之後兩個物件雖然存的值是一樣的,但是記憶體地址不一樣,兩個物件頁互相不影響,互不干涉。
下面我們來看一下遞迴實現深拷貝的具體步驟。
var obj= { "name":"豪豪", "age":22, "job":"程式設計師", "height":175, "type":{ "character":"tender" } } obj.__proto__.say=function(){ };
首先建立一個新物件,迴圈賦值;
如果物件的屬性值是物件,建立新物件,迴圈賦值。
function deepCopy(obj){ var copyObj={ }; for(var key in obj){ if(obj.hasOwnProperty(key) == true){ if(obj[key] instanceof Object){ copyObj[key] = deepCopy(obj[key]) }else{ copyObj[key] = obj[key] } } } return copyObj; } var obj2 = deepCopy(obj) console.log(obj2)
打印出來的結果如下: