测试应覆盖各种情况,包括对象、数组、函数、undefined、null、symbol等,并特别关注循环引用的处理。对于递归克隆方法,可以通过添加一些循环引用的测试案例来验证其正确性。 请注意,由于JavaScript的动态特性和复杂性,完全准确的深克隆实现可能需要根据具体需求进行调整和优化。
然后通过判断其操作的数据类型来实现 如果该数据是funtion类型,直接返回该数据 如果该数据是array类型,遍历数组中的每一项,在根据传递的参数来判断是否深或者浅克隆,如果是深刻隆继续递归调用该函数,在把返回的值放入新数组中,如果是浅克隆,直接将值放入新数组中。 如果该数据是object类型,和数组一样直接遍历其中的值...
深克隆就是创建一个新的空对象,开辟一块内存,然后将原对象中的数据全部复制过去,完全切断两个对象间的联系。 原生js实现浅克隆 // 浅克隆 var obj ={ id:1, name:'jack', msg:{ age: 18 } }; var o = {}; // 遍历obj for(var k in obj){ o[k] = obj[k]; } console.log(o); o.msg...