用Object.create和getOwnPropertyDescriptors来深拷贝会有什么问题?

新手上路,请多包涵

在查找深拷贝有关的资料时,发现这样写也可以实现深拷贝,不知道哪里会有问题呢,为什么没有看到有人这样写呢

let a = {a: 1,b: 2,c: 3,f:[1,2,3,4]};
let h = {e:a};
a.d = h;

let allPro = Object.getOwnPropertyDescriptors(a);  
let c = Object.create(Object.getPrototypeOf(a),allPro);

c.f = 1
console.log(a,c)

在chrome里测试时有环也可以拷贝,引用类型也可以深拷贝

image.png

阅读 3k
2 个回答

不够深啊:

let a = {a: 1,b: 2,c: 3,f:[1,2,3,4]};
let h = {e:a};
a.d = h;

let allPro = Object.getOwnPropertyDescriptors(a);  
let c = Object.create(Object.getPrototypeOf(a),allPro);

c.f[0] = 100
console.log(a,c)
推荐问题