Reactでイミュータブルを意識して実装をするにはImmerというライブラリを使うと良いということで色々調べてみると、オブジェクトのコピーに関して曖昧な理解をしていたことを実感しました。 そこで今回は、JavaScriptのシャローコピーとディープコピーに ...
コピー元とコピー後のオブジェクトが同じ変数を使う、参照渡し。 →コピー後のオブジェクトで変数を変更したらコピー元の変数も変更される。 deep copy コピー元とコピー後のオブジェクトは変数を共有していない、参照していないので、 コピー後の変数を ...
「スプレッド構文はシャローコピーだよ〜」と言われたことがありますが、正直シャローコピーが何なのか分からなかったので、簡単にまとめてみたいと思いました。 1. Javascriptのデータタイプ コピーの話をする前に、まずはJavascriptにおいてデータの話を ...
(初心者のため勘違いしていたら申し訳ありません) シャローコピー、ディープコピーの定義が言語間で異なるため、混乱しています。 私はJavaから来ましたが、Javaではシャローコピーは参照情報のコピーを、ディープコピーは実体のコピーを意味すると ...
Object.assignは、ディープコピーではなく、シャローコピーのため下階層のオブジェクトはコピーされない。 解決方法 汎用的な対応は自前で実装するのはコストが高いのでライブラリを使用する(自前の実装で解決できるレベルのネストであれば、ループなど ...