Ecma6,Object.assign不会执行深层复制

时间:2015-11-19 06:30:44

标签: javascript ecmascript-6

dst = { "a" : 1}
src = { "edf" : {"zyx" : "right"}}
Object.assign(dst, src)
src.edf.zyx = "wrong"
console.log(dst["edf"]["zyx"])

我希望看到'right'作为输出,但会打印'wrong'

这意味着,Object.assign尚未完成从源到目标的复杂对象的深层复制。我怎么做深拷贝?

注意:我知道lodash.deepClone,但我正在努力避免使用外部框架

1 个答案:

答案 0 :(得分:-1)

首先,我想告诉你,这不是防弹解决方案(如果是日期对象)。如果您想要“正确”作为答案,这是您的解决方案:

30 -1 + 1

所以请阅读这些链接以更好地理解深层复制

Most elegant way to clone a JavaScript object

Copy JavaScript object to new variable NOT by reference?