著名畫家陳甯,1957年12月出生于上海,畢業于上海工藝美術學校,是上海美術家協會會員。其代表作品有連環畫《今夏流行明黃色》,《馬超》,《劉秀》,《宋士傑》,《纣王自焚》等。

案發野狼谷
生孩子送紅雞蛋的來曆
蘭陵美酒
滑頭班長
蘭溪火腿
平湖糟蛋
金華火腿的故事
八哥
吳用的妙計
王小山搬救兵
勇擒白日闖
著名畫家陳甯,1957年12月出生于上海,畢業于上海工藝美術學校,是上海美術家協會會員。其代表作品有連環畫《今夏流行明黃色》,《馬超》,《劉秀》,《宋士傑》,《纣王自焚》等。
案發野狼谷
生孩子送紅雞蛋的來曆
蘭陵美酒
滑頭班長
蘭溪火腿
平湖糟蛋
金華火腿的故事
八哥
吳用的妙計
王小山搬救兵
勇擒白日闖
在實際開發過程中,經常遇到需要對引用類型進行深克隆的地方;引用類型的位址存在棧中,而值存在堆中。如果對象淺拷貝,拷貝的對象的屬性變化會引起原對象的屬性變化,在一些地方我們不希望原對象屬性跟随新對象的屬性變化;需要我們實作深克隆。
function deepClone(obj){
// 判斷傳參是否是一個有值的對象
function isObj(obj){
return (typeof obj==='object'||typeof obj==='function'&&obj!==null)
}
if(!isObj){
return 0bj;
}
// 解構指派--判斷是否為數組
let newObj=Array.isArray(obj)?[...obj]:{...obj};
// 收集對象屬性,進行值的周遊
Reflect.ownKeys(newObj).forEach(key=>{
// 判斷對象的屬性是否是引用類型
newObj[key]=isObj(obj[key])?deepClone(obj[key]):obj[key];
});
return newObj;
};
let obj={
id:235,
name:'xx',
say(){
console.log('xx');
},
child:{
name:'hh',
say(){
console.log('hh');
},
child:{
name:'cc',
say(){
console.log('cc');
}
}
}
};
let newObj=deepClone(obj);
console.log(newObj);
console.log('數組:',deepClone([1,3,4,{id:'666'}]));