Shallow Copy とは - JavaScript
Jan 23, 2021
Object.assign() メソッドを使ってオブジェクトをコピーすると Shallow Copy になる。
Shallow Copy とはオブジェクト直下のプロパティのみコピーすることです。
let obj1 = { a: 0, b: { c : 0 } };
let obj2 = Object.assign({}, obj1);
obj1 のコピーを作成して obj2 に保存。
obj2.a = 2;
この段階で、
- obj1 は
{ "a": 0, "b": { "c": 0}}
- obj2 は
{ "a": 2, "b": { "c": 0}}
となる。
obj1.a と obj2.a が別になっている。
( a
はコピーされている )
obj2.b.c = 3;
この段階で、
- obj1 は
{ "a": 0, "b": { "c": 3}}
- obj2 は
{ "a": 2, "b": { "c": 3}}
となり、obj1.b.c と obj2.b.c 、両方とも変わってしまう。
( c
はコピーされていない )
参考ページ:Object.assign()
参考ページ:オブジェクトの複製