(エッセンス)2020年6月25日JavaScriptプレミアム編の深いコピーと浅いコピー
7548 ワード
一:浅いコピー
二:深いコピー
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);