- 系列分享
寒潮ing,你可能在FaceTest中遇到(1)—— new运算符及手动实现
寒潮ing,你可能在FaceTest中遇到(2)—— 常用的排序算法
寒潮ing,你可能在FaceTest中遇到(3)—— what's this
寒潮ing,你可能在FaceTest中遇到(4)—— 常见的继承方式以及缺点
深拷贝和浅拷贝区别就不在这赘述了,直接上面试够用版深拷贝代码(可以手写)
function deepCopy(obj) {
// 开始建立一个与当前需要克隆的空对象或数组
let objCopy = Array.isArray(obj) ? [] : {};
// 判断类型如果是对象(或数组)
// 注意 typeof null 结果是object 所以要排除
if (typeof obj === "object" && obj != null) {
for(let key in obj){
// 判断里面的值是否为object或者array
let status = typeof obj[key] === "object" && obj[key] != null;
objCopy[key] = status ? deepCopy(obj[key]) : obj[key]
}
}else {
objCopy = obj
}
return objCopy
}