Open hua03 opened 3 years ago
深拷贝那里,不能直接将result赋值为空对象,这样会破坏对象的原型链,而且修改了对象。 可以改成这样:
result = new obj.constructor()
利用原对象的构造函数生成新对象,然后用for in 循环给对象添加属性。不过这种方式也存在弊端,如果构造函数需要接收参数做计算,就会导致执行时报错。
深拷贝那里,不能直接将result赋值为空对象,这样会破坏对象的原型链,而且修改了对象。 可以改成这样:
利用原对象的构造函数生成新对象,然后用for in 循环给对象添加属性。不过这种方式也存在弊端,如果构造函数需要接收参数做计算,就会导致执行时报错。