(エッセンス)2020年6月25日JavaScriptプレミアム編の深いコピーと浅いコピー


一:浅いコピー
function deep(obj){
     
    var mn = {
     };
    for(var key in obj) {
     
        mn[key]  = obj[key]
     }   
     return  mn;      
}
var obj0 = deep(obj);
//  
var obj1 = Object.assign({
     },obj);
var {
     ...obj2} = obj;  //     
//  
var arr01 = [1,2,3];
arr02= arr01.slice(0);
var [...arr03] = arr01;//     
var arr04 = Array.from(arr01);
var arr05=arr01.concat()


二:深いコピー
var onk1= JSON.parse(JSON.stringify(onk));//         
//for      
function extendDeep(source){
     
	var target;
	if(typeof source!='object'){
     
	    target = source;
	    return target;
	}
	target =  Array.isArray(source)?[]:{
     };
	for(var key in source){
      
	    if(typeof source[key]!='object'){
     
	        target[key] = source[key];
	    } else {
      
	        target[key] = extendDeep(source[key])
	    }
	}
	return target;
}
var newObj2  = extendDeep(obj);