js物件實現深淺拷貝!!
// 物件淺拷貝
function objShallowCopy(obj){
var obj2 ={};
for(var i in obj){
obj2[i] = obj[i]
}
return obj2
}
// 物件深拷貝
function objDeepCopy(obj1,obj2){
var obj2 = obj2 || {} //最初的時候給他一個初始值=它自己或者一個json
for(var name in obj1){
if(typeof obj1[name] ==='object'){ // 先判斷obj1[name]是不是物件
obj2[name] =(obj1[name].constructor === Array) ? [] : {} //將要複製的name項 = 陣列或者json
objDeepCopy(obj1[name],obj2[name]) // 無線呼叫自己 遞迴思想
}else {
obj2[name] = obj1[name] // 如果不是物件 直接等於即可, 不發生引用關係
}
}
return obj2 //把複製好的物件return出去
}
相關文章
- 實現物件淺拷貝、深拷貝物件
- js實現深拷貝和淺拷貝JS
- 【JS】深拷貝與淺拷貝,實現深拷貝的幾種方法JS
- [JS系列二]談談深拷貝和淺拷貝,如何實現深拷貝JS
- 物件深拷貝和淺拷貝物件
- JS深拷貝與淺拷貝JS
- js 深拷貝和淺拷貝JS
- js 淺拷貝和深拷貝JS
- 淺探js深拷貝和淺拷貝JS
- 聊聊物件深拷貝和淺拷貝物件
- 淺拷貝與深拷貝的實現
- JS中的深淺拷貝以及實現深拷貝的幾種方法.JS
- js之淺拷貝和深拷貝JS
- js的深拷貝和淺拷貝JS
- js實現深拷貝JS
- 【JavaScript】物件的淺拷貝與深拷貝JavaScript物件
- js 淺拷貝(淺複製、淺克隆)、深拷貝(深複製、深克隆)JS
- JavaScript物件的深拷貝以及淺拷貝分析JavaScript物件
- PHP 物件導向 - 物件的淺拷貝與深拷貝PHP物件
- jquery之物件拷貝深拷貝淺拷貝案例講解jQuery物件
- 詳解js中的物件的深淺拷貝JS物件
- 淺拷貝&深拷貝
- 理解JS中的淺拷貝與深拷貝JS
- js 陣列的淺拷貝和深拷貝JS陣列
- js 深淺拷貝知多少JS
- js中的深淺拷貝JS
- 淺談深拷貝與淺拷貝?深拷貝幾種方法。
- 深拷貝和淺拷貝的區別是什麼?實現一個深拷貝
- 操作字元、物件方法, 深淺拷貝字元物件
- 淺拷貝和深拷貝
- 深拷貝和淺拷貝
- 淺拷貝與深拷貝
- Python - 物件賦值、淺拷貝、深拷貝的區別Python物件賦值
- 三目運算、物件克隆、深拷貝和淺拷貝物件
- java深克隆(深拷貝)和淺克隆(淺拷貝)Java
- JS複習之深淺拷貝JS
- JS專題之深淺拷貝JS
- 在js中如何區分深拷貝與淺拷貝?JS