跳至主要內容

深度克隆函数

yyshino大约 1 分钟FrontEndJS

原生方法实现

原生方法实现深拷贝,主要是使用JSON.parse()JSON.stringify(),首先将对象序列化为JSON字符串,再将JSON字符串反序列化为对象,使用这种方式效率比较高,但是会有一些问题,对于循环引用的对象无法实现深拷贝,对于被拷贝的对象,如果对象中有属性为Date对象,此种方式深拷贝会将时间对象转化为字符串;如果对象中有属性为RegExp对象、Error对象,此种方式深拷贝会得到一个空对象;如果对象中有属性为function对象、undefinedSymbol值,此种方式深拷贝会忽略这些值;如果对象中有属性为NaNInfinity-Infinity,此种方式深拷贝会将结果转为null