Mitomex Blog

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()
参考ページ:オブジェクトの複製