【发布时间】:2017-06-10 09:31:11
【问题描述】:
我想知道两者有什么区别
Object.assign({}, obj)
和
JSON.parse(JSON.stringify(obj))
用于深度克隆对象?如果他们有任何想法,谁能解释一下?
【问题讨论】:
-
在 chrome 控制台中 var obj1={"d":22,"k":33} var obj2 = Object.assign({},obj1) obj2 Object {d: 22, k: 33 } obj2.k=44 obj1 Object {d: 22, k: 33}... 这里 Obj1 没有改变,所以它的意思是它是深度版权?
-
不,是浅拷贝。您正在改变副本的自身属性。尝试创建对象的对象,制作副本,然后改变“指向”的对象。
标签: javascript javascript-objects