今天周末,没事干,电脑打开了,手写一个深拷贝来练练手,不用代码编辑器是为了真的练手,并且以后好找的方便copy.
function deepClone(obj, map = new WeakMap()) {
if((typeof obj !== 'object) || obj === null ) return obj;//处理基本数据类型
if(map.has(obj)) return map.get(obj)
const copy = Array.isArray(obj) ? []:{}
map.set(obj,copu)
for(let key in obj){
if(obj.hasOwnProperty(key)) {
copy[key] = deepClone(obj[key],map)
}
}
return copy
}