JavaScriptでObjectのDeep copyする時は
Object.assignを使う(←嘘)
IE11とか、変な条件でなければだいたい使えるみたい
と思ったら、指摘を頂いて確認してみたところ、
一階層目しか値コピーできていない事がわかった。
この場合はいい
let a = {x: 1, y: 2};
let b = Object.assign({}, a);
b.y = 3;
console.log(a); // {x: 1, y: 2}
console.log(b); // {x: 1, y: 3}
この場合はだめ
let a = {x: 1, y: {Y: 2}};
let b = Object.assign({}, a);
b.y.Y = 3;
console.log(a); // {x: 1, y: {Y: 3}}
console.log(b); // {x: 1, y: {Y: 3}}