简单需求的话:直接 JSON.parse(JSON.stringify(someobj))
复杂需求的话:实现一个”完美“的深拷贝,只能求教上百行代码的 Lodash.cloneDeep() 了
面试够用版:
function deepClone(someobj){ let cloneObj; //简单数据类型时 if(typeof someobj!='object'){ cloneObj=someobj} else if(someobj&&typeof someobj=='object'){ cloneObj=Array.isArray(someobj)?[]:{}; //遍历对象属性 for(let key in someobj){ //过滤掉对象原型上的属性 if(someobj.hasOwnPrototype(key)){ if(someobj[key]&&typeof(someobj[key])=='object'){ cloneObj[key]=deepClone(someobj[key]); } else{ cloneObj[key]=someobj[key] } } } } return cloneObj; }