首先判断传入的对象是否为 null 或不是一个对象类型,如果是,则直接返回原始值。
根据传入的对象类型创建一个对应的克隆对象 clone
,如果是数组,则创建一个空数组,如果是对象,则创建一个空对象。
使用 for...in
循环遍历原始对象的所有属性,并通过递归调用 deepClone
方法对每个属性值进行深拷贝。这样可以确保对于每个属性值,如果它是对象或数组,会递归地进行深拷贝
最后,返回深拷贝后的克隆对象
上述方法只能实现对对象和数组的深拷贝,对于其他引用类型(如函数、正则等)可能无法正确进行深拷贝。