jsでディープコピーをとる方法

最終更新日:2020年3月25日 JavaScript

Nuxtでアプリを作成していたとき、jsでディープコピーをとったつもりが、実はシャローコピーであったという失敗をしたので、備忘録としてまとめておく。

まず、以下のようにslice()はシャローコピーを返すので注意。

続いて、Object.assignはプロパティの値がプリミティブ値であればディープコピーをとることができる。

が、以下のようにプロパティの値がオブジェクトになっている場合はシャローコピーとなる。

そこで、完全なディープコピーを作成する方法としては、lodashを使うのが簡単。

jsでは配列メソッドでシャローコピーしかとれないものが多いので、配列やオブジェクトのコピーをつくる際には特に注意が必要。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です